我正在构建一个 Windows Docker 容器,我想添加到
PATH
环境变量的路径。
我在
ENV
中使用 Dockerfile
命令没有成功。有没有办法使用此命令来实现我对 Windows 容器的目标?
当我尝试解决方法时
RUN setx /m PATH %PATH%;Hello
这实际上成功设置了
PATH
变量。这样做有什么缺点吗?
我注意到的另一件事是,在 PowerShell 中执行等效操作(将
SHELL
设置为 PowerShell
)之后确实会导致错误:
Step 1/6 : FROM mcr.microsoft.com/windows/servercore:ltsc2019
---> ce4ffba65ace
Step 2/6 : SHELL ["PowerShell", "-Command"]
---> Using cache
---> 69c6518616c7
Step 3/6 : RUN echo $env:PATH
---> Using cache
---> dbd17db2deb3
Step 4/6 : RUN setx /m PATH '$env:PATH;Hello'
---> Running in d697e2132ddf
SUCCESS: Specified value was saved.
Removing intermediate container d697e2132ddf
---> 150c85a8a063
Step 5/6 : RUN echo $env:PATH
---> Running in c4638d8ffa24
container c4638d8ffa243ebd85f684c8891dd8110831ef9fe083526b996211f6f28bc188 encountered an error during hcs::System::CreateProcess: failure in a Windows system call: The system cannot find the file specified. (0x2)
这有什么问题吗?
您必须在构建时提供 Windows 路径,如下所示:
ARG WINDOWS_PATH
RUN setx /m PATH ${WINDOWS_PATH};Hello
docker build --build-arg WINDOWS_PATH=%PATH%