我想为构建镜像 docker 启动 COPY 命令 dockerfile,并将 bash 文件从主机(windows 10)复制到 ubuntu 镜像,如下所示:
COPY "C:\toto\directory_good\base.sh" /home/docker/scripts/base.sh
我尝试了很多可能性,但我总是得到相同的错误信息:
lstat C:\base.sh: no such file or directory
我想在我的 Windows 10 操作系统中使用一些 bash 文件来供应和配置我的容器 docker。
在 Dockerfile 中写入路径窗口的正确方法是什么。您是否有示例可以更深入地了解如何做到这一点?
最佳答案
使用相对路径(不是用 c:\完全限定,而是相对于构建目录)并切换到正斜杠:
COPY scripts/base.sh /home/docker/scripts/base.sh
当你执行 docker build -t myimg:latest .
时,最后的 .
告诉 docker 客户端发送当前目录(不包括 中列出的任何内容) .dockerignore
) 到 docker 引擎进行构建。 COPY
或 ADD
命令不能包含该目录中未包含的任何内容。标准过程是将您的 Dockerfile 和所有需要的依赖项放在一个文件夹中,然后在该文件夹中进行构建。
另请注意,1.12 添加了将转义字符从 Linux/Unix 使用的反斜杠更改为反引号的功能。这是在 Dockerfile 顶部的特殊转义指令中定义的,前缀为 #
。我不建议对您为 Linux 主机构建的镜像执行此操作:
# escape=`
# Example Dockerfile with escape character changed
FROM windowsservercore
COPY testfile.txt c:\
RUN dir c:\
关于windows - 带有 Windows 路径的 dockerfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39664808/