我想将文件复制到$ PSHOME,所以我在dockerfile中有这个文件:
COPY profile.ps1 "\$PSHOME\profile.ps1"
不幸的是,这会在CWD名称“ $ PSHOME”中创建一个文件夹,并将文件复制到那里。
也许这不可能吗? $ PSHOME是一个自动变量,而不是环境变量,因此只能从PowerShell会话访问它吗?
答案 0 :(得分:1)
在Dockerfile内,您使用反斜杠(see the documentation for more details)对$
进行了转义。对于路径分隔符,您可以切换到正斜杠。但是,Docker将仅扩展在Dockerfile内部定义的构建参数和环境变量,而不扩展来自外部环境或PowerShell的值。 (要了解原因,请意识到构建是在Docker引擎上运行的,而不是在客户端命令行上运行的,并且该引擎可以是远程服务器。)
最后一点,如果要在构建Windows容器时使用反斜杠,则可以更改转义符。这是通过在Dockerfile的顶部设置a parser directive来完成的:
# escape=`