2017-05-07 34 views
2

docker build命令沒有構建我試圖創建的docker機器。我在網上搜索,我找不到答案。以下是我的dockerfile。我認爲問題始於取http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz命令'/ bin/sh -c apk add ...返回一個非零代碼:6

FROM python:3.5-alpine 
MAINTAINER ******* <[email protected]******.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 ******* <[email protected]*******.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 

回答

1

分隔每個命令,看看哪些是準確導致的問題。而不是連續使用& &連接。使用apk add的RUN命令僅對一個包裝,然後以同樣的方式進行。

以這種方式,你會看到他們中的哪一個確實導致了問題。

這隻適用於「調試」。解決問題後,您可以將它們全部再次密封。

+0

我明白你的想法,很棒。但是,如果您檢查了,則在運行apk添加部分失敗,其中包括構建圖像,這是使用泊塢窗時要完成的第一步。我在尋找的是能夠給我提示如何解決這個問題的人。謝謝 –

+1

但是你可以將你的第一個命令從安裝libffi-dev postgresql-dev uwsgi-python監督器中分離出來,每個命令都在一個RUN apk命令中。做到這一點,看看他們究竟是哪一個給你帶來麻煩 – OscarAkaElvis

相關問題