波浪号扩展在 Docker CMD 命令中不起作用



我有一个Dockerfile,它包含以下行:

USER lodgepole
CMD ["tail", "-f", "~/block.txt"]

但是容器退出,错误为找不到文件~/block.txt

以下内容确实如预期的那样起作用:

CMD ["tail", "-f", "/home/lodgepole/block.txt"]

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

在Linux上使用Docker 20.10.9。

颚化符展开由shell完成。当您使用CMD的exec形式时,没有shell进行扩展。

您可以使用CMD的shell形式,它通过shell运行命令,如以下

CMD tail -f ~/block.txt

或者,您可以使用exec表单并显式运行shell,如以下

CMD ["/bin/sh", "-c", "tail -f ~/block.txt"]

这两个命令的作用完全相同。如果使用shell表单,它将以与exec窗体相同的方式运行shell。

更多信息请点击此处:https://docs.docker.com/engine/reference/builder/#cmd

相关内容

  • 没有找到相关文章

最新更新