我尝试使用 COPY
命令与包含换行符的目录名称,并尝试使用 \n
、\x0a
编写它> 或使用文字换行符,但是 docker 找不到使用这些方法中的任何一种的目录,尽管如果我将其重命名为其中不包含换行符,它确实会找到它。 docker文档似乎也没有提到这一点。我怎样才能让它发挥作用?
最小示例:
$ touch $'foo\nbar'
$ echo -e 'FROM busybox\nCOPY "foo\\nbar" /tmp/\nCMD /bin/sh' >|Dockerfile
$ docker build .
Sending build context to Docker daemon 8.192kB
Step 1/3 : FROM busybox
---> 020584afccce
Step 2/3 : COPY "foo\nbar" /tmp/
COPY failed: stat /var/lib/docker/tmp/docker-builder128029906/foo\nbar: no such file or directory
最佳答案
以下似乎有效:
ADD ["\n.txt", "\n.txt"]
看起来像 \r
、\b
、\n
可以工作,但是 \x**
或 \e
没有。我有 Docker 版本 19.03.5-ce,内部版本 633a0ea838。我找不到任何关于此的引用,所以如果有人找到它并看到这个答案,请随意编辑它。
关于docker - 引用 Dockerfile 中包含换行符的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58934286/