我想将一个文件复制到 $PSHOME,所以我的 dockerfile 中有这个:
COPY profile.ps1 "\$PSHOME\profile.ps1"
不幸的是,这会在 CWD 名称“$PSHOME”中创建一个文件夹并将文件复制到那里。
也许这是不可能的? $PSHOME 是一个自动变量,而不是环境变量,所以它可能只能从 PowerShell session 访问吗?
最佳答案
在 Dockerfile 中,您使用反斜杠 ( see the documentation for more details ) 对 $
进行转义。对于路径分隔符,您可以切换到正斜杠。但是,Docker 只会扩展在 Dockerfile 中定义的构建参数和环境变量,而不是来自外部环境或 PowerShell 的值。 (要理解为什么,要意识到构建在 Docker 引擎上运行,而不是在客户端命令行中运行,并且引擎可以是远程服务器。)
最后一点,如果您想在构建 Windows 容器时使用反斜杠,可以更改转义字符。这是通过设置 a parser directive 来完成的。在 Dockerfile 的顶部:
# escape=`
关于windows - 在 Windows dockerfile 中转义美元符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51548272/