更改 Windows 容器的 Dockerfile 中的 PATH 变量

问题描述 投票:0回答:1

我正在构建一个 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 docker dockerfile environment-variables docker-for-windows
1个回答
0
投票

您必须在构建时提供 Windows 路径,如下所示:

ARG WINDOWS_PATH
RUN setx /m PATH ${WINDOWS_PATH};Hello
docker build --build-arg WINDOWS_PATH=%PATH%
© www.soinside.com 2019 - 2024. All rights reserved.