Docker构建失败:“约束不令人满意”

时间:2018-06-27 07:06:04

标签: docker dockerfile

我已经写了这个简单的Dockerfile

FROM alpine

WORKDIR /usr/src

RUN apk add --no-cache curl jq
RUN mkdir /env

COPY src/* /usr/src/
RUN chmod u+x /usr/src/*.sh

CMD /usr/src/wsec.sh

当我尝试构建图像时,出现以下错误消息:

Sending build context to Docker daemon  43.52kB
Step 1 : FROM alpine
 ---> 3fd9065eaf02
Step 2 : WORKDIR /usr/src
 ---> Using cache
 ---> 4c7b79dc4239
Step 3 : RUN apk add --no-cache curl jq
 ---> Running in 0cf83217477a
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz: temporary error (try again later)
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz: temporary error (try again later)
ERROR: unsatisfiable constraints:
  curl (missing):
    required by: world[curl]
  jq (missing):
    required by: world[jq]
The command '/bin/sh -c apk add --no-cache curl jq' returned a non-zero code: 2

1 个答案:

答案 0 :(得分:2)

可能会发生主要高山存储库http://dl-cdn.alpinelinux.org/alpine暂时不可用的情况。就像您的情况一样。为了不受此问题的影响,我们应该在我们的高山图像中添加其他高山存储库:

http://dl-2.alpinelinux.org
http://dl-3.alpinelinux.org
http://dl-4.alpinelinux.org
http://dl-5.alpinelinux.org

因此,最后的Dockerfile是:

FROM alpine

WORKDIR /usr/src

RUN echo "http://dl-2.alpinelinux.org/alpine/v3.7/main" >> /etc/apk/repositories      && \ 
    echo "http://dl-2.alpinelinux.org/alpine/v3.7/community" >> /etc/apk/repositories && \
    echo "http://dl-3.alpinelinux.org/alpine/v3.7/main" >> /etc/apk/repositories      && \
    echo "http://dl-3.alpinelinux.org/alpine/v3.7/community" >> /etc/apk/repositories && \
    echo "http://dl-4.alpinelinux.org/alpine/v3.7/main" >> /etc/apk/repositories      && \
    echo "http://dl-4.alpinelinux.org/alpine/v3.7/community" >> /etc/apk/repositories && \
    echo "http://dl-5.alpinelinux.org/alpine/v3.7/main" >> /etc/apk/repositories      && \
    echo "http://dl-5.alpinelinux.org/alpine/v3.7/community" >> /etc/apk/repositories 

RUN apk add --no-cache curl jq

RUN mkdir /env

COPY src/* /usr/src/
RUN chmod u+x /usr/src/*.sh

CMD /usr/src/wsec.sh