1
특정 노드 버전을 다운로드하고 추출 된 tar.xz에서 이진 파일을 복사하려고하는데 실제로는 ADD
이 파일을 추출하는 것처럼 보이지 않습니다. Docker ADD가 파일을 추출하지 않습니다.
이
내 Dockerfile입니다 :FROM arm32v7/debian:stretch-slim
ENV nodever="v6.10.0"
ADD https://nodejs.org/dist/${nodever}/node-${nodever}-linux-armv7l.tar.xz/
COPY /node-${nodever}-linux-armv7l/bin/node/
RUN cat /etc/issue && \
\
apk update && \
apk add \
dnsmasq \
hostapd \
iptables
RUN mkdir app
ADD start.sh /app/start.sh
ADD server /app/server
ADD configs/hostapd.conf /etc/hostapd.conf
ADD configs/dnsmasq.conf /etc/dnsmasq.conf
WORKDIR /app
CMD ["/app/start.sh"]
하지만 docker -v build
를 실행하면이 오류가 산출 :
Sending build context to Docker daemon 9.728kB
Step 1/12 : FROM arm32v7/debian:stretch-slim
---> 1510cdc40eca
Step 2/12 : ENV nodever "v6.10.0"
---> Using cache
---> 1ca3d2f72a3c
Step 3/12 : ADD https://nodejs.org/dist/${nodever}/node-${nodever}-linux-armv7l.tar.xz/
Downloading 8.34MB/8.34MB
---> a1fefb9bda66
Step 4/12 : COPY /node-${nodever}-linux-armv7l/bin/node/
COPY failed: stat /var/lib/docker/tmp/docker-builder233292954/node-v6.10.0-linux-armv7l/bin/node: no such file or directory
내가 아카이브를 다운로드 한 것을 알 수 RUN ls /
를 실행 해봤지만이 추출되지 않습니다 .
오 마이 맙, 고마워! Dockerfile을 예제에서 가져 와서 올바르다 고 생각했지만 변경이 되돌리기 전에 만들어진 것 같습니다. –
방금 다운로드 한 아카이브를 추출하기 위해 두 번째'ADD'를 추가했지만 이제는 'ADD'가 아카이브를 찾지 못합니다.? 솔직히 말해서 Dockerfiles를 디버그하기가 어렵습니다. –
빌드 컨텍스트 (Docker 빌더에 의해 Docker 데몬으로 보내지는 파일, Docker 빌더의 PATH/URL 인수로 참조 된 파일)를 전송할 때'ADD'와'COPY'가 사용됩니다. build (1)) 및 관련 단계에서 커밋 될 중개 컨테이너가 있어야합니다. 따라서 빌드 절차 (Dockerfile) 외부에서 컨텍스트로 압축 파일을 다운로드 한 다음 이미지에 '추가'하거나 'RUN'단계 (예 : curl | xz | tar)를 사용하여 아카이브를 * and * 압축 해제합니다.). 윤곽을 잡는 시나리오에 대해 두 가지 '추가'단계를 거치지 마십시오. – tne