Dockerhub 自动构建失败,添加文件时 "not a directory"
Dockerhub automated build fails, "not a directory" when adding file
我正在尝试使用 docker 集线器自动构建在本地构建良好的东西。它没有说:
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.sh
与 Dockerfile
在同一目录中,似乎 dockerhub 上的构建路径与存储 Dockerfile 的位置不同。
我尝试了以下变体:
COPY run.sh /bin
ADD ./run.sh /bin
我不知道为什么,但是 dockerhub 希望 COPY 或 ADD 的第一个参数是目录 - 而不是文件。我在本地是 运行 Docker 1.9.1,但事实并非如此。我将 Docker 文件切换为复制资源目录而不是单个文件,一切开始起作用。
COPY
命令(在 Dockerhub 的 Docker 版本上)期望目标文件位于右侧,而不仅仅是目标目录。即使在 Dockerhub.
上,以下命令也应该适用于您
COPY run.sh /bin/run.sh
或者,如果您想使用 ADD,请包含尾部斜杠。
ADD ./run.sh /bin/
到底发生了什么?来自 https://docs.docker.com/engine/reference/builder/#add :
添加源目标
"If dest does not end with a trailing slash, it will be considered a regular file and the contents of src will be written at dest."
没有 /bin 上的尾部斜杠,它期望 run.sh 是一个正在复制到目录 /bin 的目录。
我正在尝试使用 docker 集线器自动构建在本地构建良好的东西。它没有说:
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.sh
与 Dockerfile
在同一目录中,似乎 dockerhub 上的构建路径与存储 Dockerfile 的位置不同。
我尝试了以下变体:
COPY run.sh /bin
ADD ./run.sh /bin
我不知道为什么,但是 dockerhub 希望 COPY 或 ADD 的第一个参数是目录 - 而不是文件。我在本地是 运行 Docker 1.9.1,但事实并非如此。我将 Docker 文件切换为复制资源目录而不是单个文件,一切开始起作用。
COPY
命令(在 Dockerhub 的 Docker 版本上)期望目标文件位于右侧,而不仅仅是目标目录。即使在 Dockerhub.
COPY run.sh /bin/run.sh
或者,如果您想使用 ADD,请包含尾部斜杠。
ADD ./run.sh /bin/
到底发生了什么?来自 https://docs.docker.com/engine/reference/builder/#add : 添加源目标 "If dest does not end with a trailing slash, it will be considered a regular file and the contents of src will be written at dest."
没有 /bin 上的尾部斜杠,它期望 run.sh 是一个正在复制到目录 /bin 的目录。