Windows路径的dockerfile

dar*_*men 5 windows bash docker

我想启动COPY命令dockerfile以构建映像docker,并将bash文件从主机(windows 10)复制到ubuntu映像,如下所示:

COPY "C:\toto\directory_good\base.sh" /home/docker/scripts/base.sh
Run Code Online (Sandbox Code Playgroud)

我尝试了很多可能性,但是我总是遇到相同的错误消息:

lstat C:\base.sh: no such file or directory
Run Code Online (Sandbox Code Playgroud)

我想在Windows 10 OS中使用一些bash文件配置和配置我的容器docker。

在Dockerfile中写入路径窗口的正确方法是什么?您是否有一个示例可以更深入地了解此操作?

BMi*_*tch 7

使用相对路径(不完全限定为 c:\,但相对于构建目录)并切换到正斜杠:

COPY scripts/base.sh /home/docker/scripts/base.sh
Run Code Online (Sandbox Code Playgroud)

当您执行 a 时docker build -t myimg:latest .,最后一个.告诉 docker 客户端将当前目录(不包括 中列出的任何内容.dockerignore)发送到 docker 引擎以进行构建。未包含在该目录中的任何内容都不能包含在 aCOPYADD命令中。标准过程是将 Dockerfile 和所有需要的依赖项放在一个文件夹中,然后在该文件夹中进行构建。

另请注意,1.12 添加了将转义字符从 Linux/Unix 使用的反斜杠更改为反引号的功能。这是在 Dockerfile 顶部的特殊转义指令中定义的,前缀为#. 我不建议对您为 Linux 主机构建的映像执行此操作:

# escape=`

# Example Dockerfile with escape character changed

FROM windowsservercore
COPY testfile.txt c:\
RUN dir c:\
Run Code Online (Sandbox Code Playgroud)