bosun-monitor / bosun

Time Series Alerting Framework
http://bosun.org
MIT License
3.4k stars 495 forks source link

docker-compose build ERROR: unsatisfiable constraints: required by: world[python] #2491

Closed damuzhi closed 3 years ago

damuzhi commented 3 years ago

FROM alpine:latest 需要修改为 FROM alpine:3.11

johnewing1 commented 3 years ago

Hi, could you provide some details on what you were trying to do when you received that error ?

Thanks.

jmelosegui commented 3 years ago

I am also getting this error.

Steps to reproduce:

  1. clone the git repo
  2. cd docker
  3. docker-compose up

Using

❯ docker --version
Docker version 19.03.12, build 48a66213fe

Logs

❯ docker-compose up
Building opentsdb
Step 1/27 : FROM alpine:latest
 ---> a24bb4013296
Step 2/27 : ARG HBASE_VERSION=2.2.4
 ---> Using cache
 ---> 6bd729f3560a
Step 3/27 : ARG GNUPLOT_VERSION=5.2.8
 ---> Using cache
 ---> 7f3e3e05b546
Step 4/27 : ARG PACKAGES="ca-certificates rsyslog bash openjdk8 curl libgd libpng libjpeg libwebp libjpeg-turbo cairo pango jruby lua supervisor asciidoctor"
 ---> Using cache
 ---> 6c8639c65636
Step 5/27 : ARG BUILD_PACKAGES="build-base autoconf make automake git python cairo-dev pango-dev gd-dev lua-dev readline-dev libpng-dev libjpeg-turbo-dev libwebp-dev"
 ---> Using cache
 ---> 4db7230c824e
Step 6/27 : ARG DOCKER_ROOT="docker"
 ---> Using cache
 ---> 417e4f21453a
Step 7/27 : ARG HBASE_DIR=/hbase
 ---> Using cache
 ---> 71c6843dbb07
Step 8/27 : ENV DATA_DIR /data
 ---> Using cache
 ---> 190a6ee48fc5
Step 9/27 : ENV TSDB_DIR /tsdb
 ---> Using cache
 ---> 5d074bb9ad1c
Step 10/27 : ENV HBASE_HOME ${HBASE_DIR}
 ---> Using cache
 ---> d76a2ddd0158
Step 11/27 : ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
 ---> Using cache
 ---> d59b359592d5
Step 12/27 : ENV PATH="$JAVA_HOME/bin:${PATH}"
 ---> Using cache
 ---> 0a86d66e2917
Step 13/27 : RUN apk --update add apk-tools     && apk add ${PACKAGES} ${BUILD_PACKAGES}
 ---> Running in 2a74ac26c13a
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
OK: 6 MiB in 14 packages
  python (missing):
ERROR: unsatisfiable constraints:
    required by: world[python]
ERROR: Service 'opentsdb' failed to build : The command '/bin/sh -c apk --update add apk-tools     && apk add ${PACKAGES} ${BUILD_PACKAGES}' returned a non-zero code: 1
jmelosegui commented 3 years ago

if I change line 7 in the opentsdb.Dockerfile file. From this

ARG BUILD_PACKAGES="build-base autoconf make automake git python cairo-dev pango-dev gd-dev lua-dev readline-dev libpng-dev libjpeg-turbo-dev libwebp-dev"

To this (note I am using python2 as a dependency)

ARG BUILD_PACKAGES="build-base autoconf make automake git python2 cairo-dev pango-dev gd-dev lua-dev readline-dev libpng-dev libjpeg-turbo-dev libwebp-dev"

That error is no longer present. Instead, I get:

❯ docker-compose up --build opentsdb
Building opentsdb
Step 1/27 : FROM alpine:latest
 ---> a24bb4013296
Step 2/27 : ARG HBASE_VERSION=2.2.4
 ---> Using cache
 ---> 6bd729f3560a
Step 3/27 : ARG GNUPLOT_VERSION=5.2.8
 ---> Using cache
 ---> 7f3e3e05b546
Step 4/27 : ARG PACKAGES="ca-certificates rsyslog bash openjdk8 curl libgd libpng libjpeg libwebp libjpeg-turbo cairo pango jruby lua supervisor asciidoctor"
 ---> Using cache
 ---> 6c8639c65636
Step 5/27 : ARG BUILD_PACKAGES="build-base autoconf make automake git python2 cairo-dev pango-dev gd-dev lua-dev readline-dev libpng-dev libjpeg-turbo-dev libwebp-dev"
 ---> Using cache
 ---> 5d855d505169
Step 6/27 : ARG DOCKER_ROOT="docker"
 ---> Using cache
 ---> 8675f62df4be
Step 7/27 : ARG HBASE_DIR=/hbase
 ---> Using cache
 ---> 8826b76d9e04
Step 8/27 : ENV DATA_DIR /data
 ---> Using cache
 ---> 1bb64be19ddc
Step 9/27 : ENV TSDB_DIR /tsdb
 ---> Using cache
 ---> dd18a60e88dd
Step 10/27 : ENV HBASE_HOME ${HBASE_DIR}
 ---> Using cache
 ---> bbe6260cc3f4
Step 11/27 : ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
 ---> Using cache
 ---> 3a41655b4f24
Step 12/27 : ENV PATH="$JAVA_HOME/bin:${PATH}"
 ---> Using cache
 ---> 09cc29a5f5c9
Step 13/27 : RUN apk --update add apk-tools     && apk add ${PACKAGES} ${BUILD_PACKAGES}
 ---> Using cache
 ---> 94403cc9ccda
Step 14/27 : WORKDIR /tmp/gnuplot
 ---> Using cache
 ---> 0cf7eb69a6b1
Step 15/27 : RUN cd /tmp     && curl -L -o - https://downloads.sourceforge.net/project/gnuplot/gnuplot/${GNUPLOT_VERSION}/gnuplot-${GNUPLOT_VERSION}.tar.gz | tar -xzf - --strip-components 1     && ./configure     && make install     && rm -rf /tmp/gnuplot
 ---> Using cache
 ---> 0ffdedaaf7fe
Step 16/27 : WORKDIR ${HBASE_DIR}
 ---> Using cache
 ---> fed60322985a
Step 17/27 : RUN curl -L -o - http://archive.apache.org/dist/hbase/${HBASE_VERSION}/hbase-${HBASE_VERSION}-bin.tar.gz | tar -xzf - --strip-components 1
 ---> Using cache
 ---> cf2297f6c9b6
Step 18/27 : COPY ${DOCKER_ROOT}/hbase-site.xml ${HBASE_DIR}/conf/
 ---> Using cache
 ---> 94717b015e9a
Step 19/27 : COPY ${DOCKER_ROOT}/start_hbase.sh ${HBASE_DIR}/
 ---> Using cache
 ---> 372202564f84
Step 20/27 : RUN cd /tmp     && curl -OL https://github.com/OpenTSDB/opentsdb/archive/v2.4.0.zip     && unzip v2.4.0.zip     && mv opentsdb-2.4.0 ${TSDB_DIR}     && rm /tmp/v2.4.0.zip     && cd ${TSDB_DIR}     && find . -name '*.mk' | xargs sed -i s#http://central.maven.org#https://repo1.maven.org#g     && find . -name '*.mk' | xargs sed -i s#http://repo1.maven.org#https://repo1.maven.org#g     && ./build.sh
 ---> Using cache
 ---> c411dbc4db92
Step 21/27 : COPY ${DOCKER_ROOT}/tsdb/opentsdb.conf ${TSDB_DIR}
 ---> Using cache
 ---> b65cea6c385d
Step 22/27 : COPY ${DOCKER_ROOT}/tsdb/start_opentsdb.sh ${TSDB_DIR}
 ---> Using cache
 ---> 7c93becc2001
Step 23/27 : COPY ${DOCKER_ROOT}/tsdb/create_tsdb_tables.sh ${TSDB_DIR}
 ---> Using cache
 ---> a3d820cc499c
Step 24/27 : COPY ${DOCKER_ROOT}/data/supervisord-opentsdb.conf ${DATA_DIR}/
 ---> Using cache
 ---> 15c48256d72a
Step 25/27 : EXPOSE 4242
 ---> Using cache
 ---> 3ca3f4a5eef8
Step 26/27 : VOLUME ["${DATA_DIR}", "/var/log", "${TSDB_DIR}"]
 ---> Using cache
 ---> b8f14192b74c
Step 27/27 : CMD ["sh", "-c", "/usr/bin/supervisord -c ${DATA_DIR}/supervisord-opentsdb.conf"]
 ---> Using cache
 ---> 2897b81da229

Successfully built 2897b81da229
Successfully tagged docker_opentsdb:latest
Starting opentsdb ... done
Attaching to opentsdb
opentsdb    | 2020-09-23 02:39:46,878 INFO Set uid to user 0 succeeded
opentsdb    | 2020-09-23 02:39:46,880 INFO supervisord started with pid 1
opentsdb    | 2020-09-23 02:39:47,885 INFO spawned: 'hbase' with pid 7
opentsdb    | 2020-09-23 02:39:47,889 INFO spawned: 'opentsdb' with pid 8
opentsdb    | 2020-09-23 02:39:47,890 INFO exited: hbase (exit status 127; not expected)
opentsdb    | 2020-09-23 02:39:47,891 INFO exited: opentsdb (exit status 127; not expected)
opentsdb    | 2020-09-23 02:39:48,893 INFO spawned: 'hbase' with pid 9
opentsdb    | 2020-09-23 02:39:48,894 INFO spawned: 'opentsdb' with pid 10
opentsdb    | 2020-09-23 02:39:48,895 INFO exited: hbase (exit status 127; not expected)
opentsdb    | 2020-09-23 02:39:48,896 INFO exited: opentsdb (exit status 127; not expected)
opentsdb    | 2020-09-23 02:39:50,900 INFO spawned: 'hbase' with pid 11
opentsdb    | 2020-09-23 02:39:50,901 INFO spawned: 'opentsdb' with pid 12
opentsdb    | 2020-09-23 02:39:50,903 INFO exited: hbase (exit status 127; not expected)
opentsdb    | 2020-09-23 02:39:50,904 INFO exited: opentsdb (exit status 127; not expected)
opentsdb    | 2020-09-23 02:39:53,911 INFO spawned: 'hbase' with pid 13
opentsdb    | 2020-09-23 02:39:53,915 INFO spawned: 'opentsdb' with pid 14
opentsdb    | 2020-09-23 02:39:53,916 INFO exited: hbase (exit status 127; not expected)
opentsdb    | 2020-09-23 02:39:53,916 INFO gave up: hbase entered FATAL state, too many start retries too quickly
opentsdb    | 2020-09-23 02:39:53,917 INFO exited: opentsdb (exit status 127; not expected)
opentsdb    | 2020-09-23 02:39:54,918 INFO gave up: opentsdb entered FATAL state, too many start retries too quickly
muffix commented 3 years ago

Confirmed, thanks. I'll put in a PR to update the Python version to 3. The python package without a version doesn't exist anymore in the alpine repos.