簡體   English   中英

Docker 多階段構建:COPY --from=builder 失敗:沒有這樣的文件或目錄

[英]Docker multi-stage build: COPY --from=builder failed: no such file or directory

以下 Dockerfile

FROM nvidia/cuda:10.2-devel-ubuntu18.04 AS builder

...

RUN ls $HOME/bin

FROM nvidia/cuda:10.2-runtime-ubuntu18.04

COPY --from=builder $HOME/bin/ffmpeg /usr/local/bin/ffmpeg

回報

Step 21/23 : RUN ls $HOME/bin
 ---> Running in a8dee059d9a6
ffmpeg

Removing intermediate container a8dee059d9a6
 ---> 1cb71814a43b

Step 22/23 : FROM nvidia/cuda:10.2-runtime-ubuntu18.04
 ---> e442a6c5cd9a

Step 23/23 : COPY --from=builder $HOME/bin/ffmpeg /usr/local/bin/ffmpeg
COPY failed: stat /var/lib/docker/overlay2/b9283a57527d878d76ea8f8a1e87eb1a6466e849ee1cb4bc69601e184f6dea1f/merged/bin/ffmpeg: no such file or directory

我錯過了什么嗎? 這是docker中的錯誤嗎?

您不能在COPY操作中使用$HOME (或任何環境變量)。 您在此問題中有詳細信息https://github.com/moby/moby/issues/34482

簡單測試:

這有效:

FROM ubuntu AS builder

RUN echo "fooo" > ${HOME}/test.txt

FROM ubuntu
COPY --from=builder /root/test.txt /tmp/test.txt
RUN cat /tmp/test.txt

這不起作用,與您的錯誤相同:

FROM ubuntu AS builder

RUN echo "fooo" > ${HOME}/test.txt

FROM ubuntu
COPY --from=builder ${HOME}/test.txt /tmp/test.txt
RUN cat /tmp/test.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM