Dockerhub自动构建失败,“添加文件时不是目录”

时间:2016-01-29 01:34:18

标签: dockerhub

我正在尝试使用docker hub自动构建在本地构建良好的东西。它没说:

Build process failed: stat /var/lib/docker/aufs/mnt/1be9db483fa6f3de2596b5261e7c450de8df503185e579278396f14ba179c257/bin/run.sh: not a directory

您可以在此处查看构建本身: https://hub.docker.com/r/zbyte64/rethinkdb-tlsproxy/builds/bjclhq33kgwxxvn6nbfsgyh/

run.shDockerfile位于同一目录中,似乎dockerhub上的构建路径与存储Dockerfile的位置不同。

我尝试了以下变体:

COPY run.sh /bin

ADD ./run.sh /bin

3 个答案:

答案 0 :(得分:4)

COPY命令(在Dockerhub的Docker版本上)需要右侧的目标文件,而不仅仅是目标目录。即使在Dockerhub上,以下命令也适用于您。

COPY run.sh /bin/run.sh

答案 1 :(得分:1)

或者如果要使用ADD,请包含尾部斜杠。 ADD ./run.sh /bin/

实际发生了什么?来自https://docs.docker.com/engine/reference/builder/#add: 添加src dest "如果dest不以尾部斜杠结束,它将被视为常规文件,src的内容将写入dest。"

如果没有/ bin上的尾部斜杠,它希望run.sh成为一个被复制到目录/ bin的目录。

答案 2 :(得分:0)

我不知道为什么,但是dockerhub希望COPY或ADD的第一个参数是一个目录 - 而不是一个文件。我在本地运行Docker 1.9.1,情况并非如此。我将Dockerfile切换为复制资源目录而不是单个文件,并开始工作。