命令'/ bin / sh -c apk add …返回一个非零的代码:6

docker build命令是不是build设docker机我想做的。 我在网上search,我找不到答案。 以下是我的dockerfile 。 我认为这个问题从http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz

 FROM python:3.5-alpine MAINTAINER ******* <code@******.com> ENV INSTALL_PATH /web RUN mkdir -p ${INSTALL_PATH} COPY . ${INSTALL_PATH} WORKDIR ${INSTALL_PATH} RUN apk add --no-cache --virtual .build-deps build-base libffi-dev postgresql-dev uwsgi-python supervisor \ && pip install --trusted-host github.com --process-dependency-links -e . \ && find /usr/local \( -type d -a -name test -o -name tests \) \ -o \( -type f -a -name '*.pyc' -o -name '*.pyo' \) -exec rm -rf '{}' + \ && runDeps="$(scanelf --needed --nobanner --recursive /usr/local \ | awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \ | sort -u | xargs -r apk info --installed | sort -u \ )" \ && apk add --virtual .rundeps $runDeps && apk del .build-deps 

输出如下:

 Sending build context to Docker daemon 11.26kB Step 1/7 : FROM python:3.5-alpine ---> 9691bd606b6d Step 2/7 : MAINTAINER ******* <code@*******.com> ---> Using cache ---> 71df6ccd567e Step 3/7 : ENV INSTALL_PATH /web ---> Using cache ---> 06ced81d3941 Step 4/7 : RUN mkdir -p ${INSTALL_PATH} ---> Using cache ---> ad857704376d Step 5/7 : COPY . ${INSTALL_PATH} ---> Using cache ---> c6ddc57309a2 Step 6/7 : WORKDIR ${INSTALL_PATH} ---> Using cache ---> 62f0dbfaa3eb Step 7/7 : RUN apk add --no-cache --virtual .build-deps build-base libffi-dev postgresql-dev uwsgi-python supervisor && pip install --trusted-host github.com --process-dependency-links -e . && find /usr/local \( -type d -a -name test -o -name tests \) -o \( -type f -a -name '*.pyc' -o -name '*.pyo' \) -exec rm -rf '{}' + && runDeps="$(scanelf --needed --nobanner --recursive /usr/local | awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' | sort -u | xargs -r apk info --installed | sort -u )" && apk add --virtual .rundeps $runDeps && apk del .build-deps ---> Running in 1abedb8ada2a fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz: temporary error (try again later) fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz: temporary error (try again later) ERROR: unsatisfiable constraints: .build-deps-0: masked in: cache satisfies: world[.build-deps] build-base (missing): required by: libffi-dev (missing): required by: postgresql-dev (missing): required by: uwsgi-python (missing): required by: supervisor (missing): required by: The command '/bin/sh -c apk add --no-cache --virtual .build-deps build-base libffi-dev postgresql-dev uwsgi-python supervisor && pip install --trusted-host github.com --process-dependency-links -e . && find /usr/local \( -type d -a -name test -o -name tests \) -o \( -type f -a -name '*.pyc' -o -name '*.pyo' \) -exec rm -rf '{}' + && runDeps="$(scanelf --needed --nobanner --recursive /usr/local | awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' | sort -u | xargs -r apk info --installed | sort -u )" && apk add --virtual .rundeps $runDeps && apk del .build-deps' returned a non-zero code: 6 

分开每个命令,看看其中哪一个正是导致问题的原因。 而不是连续使用&&来连接。 把一个RUN命令与apk addapk add一个包,然后以相同的方式。

通过这种方式,你会看到他们中的哪一个正在造成问题。

这只是为了“debugging”。 解决了这个问题之后,你可以把它们全部再次盖住。

在获取过程中,DNS名称服务器无法parsing地址。 原因可能是有防火墙

Ubuntu在/ etc / default / docker文件中有google dns服务器

DOCKER_OPTS =“ – dns 8.8.8.8 –dns 8.8.4.4”

有更多的细节来解决DNS问题在这里Docker – networking调用在企业networking上的图像构build过程中失败