docker - 引用 Dockerfile 中包含换行符的文件名

标签 docker escaping dockerfile

我尝试使用 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/

相关文章:

mysql - 尝试将 Jira(docker)连接到 Mysql(非 docker)5.6.44 但连接被拒绝

text - Ocaml 中的转义序列

java - 如何在java字符串中应用转义字符

node.js - docker构建Dockerfile时如何缓存RUN npm install指令

docker - 无法连接到Docker守护程序

docker - 使用 Jenkins docker 插件拉取并运行 docker 镜像

python - python3中转义XML字符串的未转义数据

docker - 推送 docker 镜像和安装 helm 镜像的区别

php - ImageMagick PHP Docker版本问题

django - CORS 在 dockerized Django REST + Angular 项目中被阻止