我正在尝试将计算机上的.obj文件传递给docker文件,然后将其添加到图像中,但我收到的文件未找到错误。我试图访问的文件甚至与dockerfile在同一个文件夹中,但情况可能并非总是如此。
运行此命令后......
sh maya-pipeline.sh /Users/kromah/Documents/Developer/Github/Unity/unity-pipeline-maya/house_data/0004d52d1aeeb8ae6de39d6bd993e992/main.obj
echo $1
docker build --build-arg house=$1 -t dock .
echo命令输出文件位置
FROM mottosso/mayabase-centos
MAINTAINER marcus@abstractfactory.io
ARG house=/house_data/0004d52d1aeeb8ae6de39d6bd993e992/main.obj
ADD $house /root/pipeline
lstat Users/kromah/Documents/Developer/Github/Unity/unity-pipeline-maya/house_data/0004d52d1aeeb8ae6de39d6bd993e992/main.obj: no such file or directory
答案 0 :(得分:4)
Docker不允许您添加Dockerfile所在位置的文件 out (在当前Dockerfile目录或其子目录之外)。
Docker的开发团队表示这是出于安全原因" :通过不允许这样做,它避免恶意Dockerfiles尝试导入您珍贵的/ etc / passwd或影子文件或其他; - )
所以基本上,任何不以Dockerfile 的根目录开头的路径都不能添加到容器中,既不是ADD也不是COPY。
请注意,符号链接不会更好。
答案 1 :(得分:0)
我解决方法是将文件cp到Dockerfike所在的目录。