Docker ARG命令找不到文件

时间:2017-07-13 00:18:28

标签: shell docker dockerfile

我正在尝试将计算机上的.obj文件传递给docker文件,然后将其添加到图像中,但我收到的文件未找到错误。我试图访问的文件甚至与dockerfile在同一个文件夹中,但情况可能并非总是如此。

运行此命令后......

sh maya-pipeline.sh /Users/kromah/Documents/Developer/Github/Unity/unity-pipeline-maya/house_data/0004d52d1aeeb8ae6de39d6bd993e992/main.obj

maya-pipeline.sh

echo $1
docker build --build-arg house=$1 -t dock .

echo命令输出文件位置

Dockerfile

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

2 个答案:

答案 0 :(得分:4)

Docker不允许您添加Dockerfile所在位置的文件 out (在当前Dockerfile目录或其子目录之外)。

Docker的开发团队表示这是出于安全原因" :通过不允许这样做,它避免恶意Dockerfiles尝试导入您珍贵的/ etc / passwd或影子文件或其他; - )

所以基本上,任何不以Dockerfile 的根目录开头的路径都不能添加到容器中,既不是ADD也不是COPY。

请注意,符号链接不会更好。

答案 1 :(得分:0)

我解决方法是将文件cp到Dockerfike所在的目录。