相关疑难解决方法(0)

如何在Docker的构建上下文之外包含文件?

如何使用Docker文件中的"ADD"命令包含Docker构建上下文之外的文件?

从Docker文档:

路径必须位于构建的上下文中; 你不能添加../something/something,因为docker构建的第一步是将上下文目录(和子目录)发送到docker守护进程.

我不想重构我的整个项目只是为了适应Docker这个问题.我想将所有Docker文件保存在同一个子目录中.

此外,似乎Docker还没有(也可能不会)支持符号链接:Dockerfile ADD命令不遵循主机#1676上的符号链接.

我能想到的唯一另一件事是包含一个预构建步骤,将文件复制到Docker构建上下文中(并配置我的版本控制以忽略这些文件).还有比这更好的解决方法吗?

docker

367
推荐指数
12
解决办法
17万
查看次数

Dockerfile:复制/添加路径中的空格字符(Windows)

在 Windows 10 (cmd) 中,我试图从名称中包含空格字符的子文件夹中复制文件。

  1. 首先我尝试使用引号:

    FROM jfloff/alpine-python:2.7
    COPY "Folder 1/File.txt" "Dir 1"
    
    Run Code Online (Sandbox Code Playgroud)

    错误信息:

    无法处理“\”文件夹:查找匹配的双引号时意外结束语句

  2. “JSON”格式(跳过第一行):

    COPY ["Folder 1/File.txt" "Dir 1"]
    
    Run Code Online (Sandbox Code Playgroud)

    错误信息:

    无法处理"[\"Folder" : 寻找匹配的双引号时意外的语句结束

  3. 试图用一个反斜杠转义:

    COPY "Folder\ 1/File.txt" "Dir\ 1"
    
    Run Code Online (Sandbox Code Playgroud)

    错误信息:

    无法处理"\"Folder\\" : 寻找匹配的双引号时意外结束语句

  4. 试图用双反斜杠转义:

    COPY "Folder\\ 1/File.txt" "Dir\\ 1"
    
    Run Code Online (Sandbox Code Playgroud)

    错误信息:

    无法处理"\"Folder\\\\" : 寻找匹配的双引号时意外结束语句

  5. 还尝试了使用%20而不是空格的建议:

    COPY ["Folder%201/File.txt" "Dir%201"]
    
    Run Code Online (Sandbox Code Playgroud)

    错误信息:

    复制失败:没有源文件

  6. 转义字符替换:

    # escape=`
    COPY "Folder` 1/File.txt" "Dir 1"
    
    Run Code Online (Sandbox Code Playgroud)

    错误信息:

    无法处理“\”Folder`”:寻找匹配的双引号时意外结束语句

  7. 相同,但没有引号:

    #escape=`
    COPY Folder` 1/File.txt Dir` 1
    
    Run Code Online (Sandbox Code Playgroud)

    错误信息:

    复制失败:stat /var/lib/docker/tmp/docker-builder082039614/ …

windows path docker dockerfile

17
推荐指数
2
解决办法
8100
查看次数

标签 统计

docker ×2

dockerfile ×1

path ×1

windows ×1