以下 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中的错误吗?
您不能$HOME
在COPY
操作中使用(或任何环境变量)。您在此问题中有详细信息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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句