【问题标题】:Tilde Expansion Doesn't Work in Docker COPY Command波浪号扩展在 Docker COPY 命令中不起作用
【发布时间】:2017-06-15 02:22:58
【问题描述】:

我有一个带有以下行的 Dockerfile:

COPY *.zip ~user1

用户user1 已经存在并且有一个主目录(即/home/user1)。当然,目标是将 zip 文件复制到该用户的主目录中,但上述结果是将 zip 文件复制到图像中字面意思为 /~user1 的文件中。

以下内容按预期工作:

COPY *.zip /home/user1

这是 Docker 中的一个错误,还是存在我不知道的与波浪号扩展相关的限制

在 Mac 上使用 Docker 1.13.0。

【问题讨论】:

  • 波浪号扩展是各种 unix/linux shell 的一个特性。任何这些 shell 都不处理复制命令。
  • 如果您使用 docker compose commnad 为您的用户目录使用波浪号引用,它甚至都不起作用。见:github.com/docker/docker.github.io/pull/8538

标签: docker dockerfile tilde-expansion


【解决方案1】:

不支持COPY 的波浪号扩展。

来自The COPY docs

dest绝对路径,或相对于 WORKDIR 的路径,源将在目标容器内复制到其中。

例子:

COPY test relativeDir/   # adds "test" to `WORKDIR`/relativeDir/
COPY test /absoluteDir/  # adds "test" to /absoluteDir/

【讨论】:

  • 他们可能应该有一个“已知问题”部分。似乎是一个常见问题。
猜你喜欢
  • 2012-06-20
  • 2011-06-06
  • 2013-03-29
  • 2013-03-07
  • 2012-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多