Dockerfile追加路径环境变量不工作?

Dockerfile追加路径环境变量不工作?,docker,dockerfile,Docker,Dockerfile,我认为这很简单,谷歌搜索确实给出了很多答案,但不确定为什么它对我不起作用 首先,在没有设置任何ENV PATH=的情况下,我可以检查PATH是否具有默认值 C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Users\ContainerAdministrator\AppData\Local\Microsoft\WindowsApps 我只需运

我认为这很简单,谷歌搜索确实给出了很多答案,但不确定为什么它对我不起作用

首先,在没有设置任何
ENV PATH=
的情况下,我可以检查
PATH
是否具有默认值

C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Users\ContainerAdministrator\AppData\Local\Microsoft\WindowsApps

我只需运行映像并使用
CMD echo%PATH%
即可检查这一点

但是,在以下设置中,所有默认值都消失了,只剩下新值(看起来它确实无法获得默认值,或者只是该值为空):

以下是各种尝试(无效):

使用上述设置之一,路径(在运行的容器上执行cmd时由
echo%PATH%
检查)变为
C:\Program Files\dotnet
(在某些情况下可能会附加一些字符)

我真的很想为这样一个简单的问题把头撞到墙上,但这花了我几个小时。真的吗

下面是完整的dockerfile:

# escape=`

FROM microsoft/dotnet:2.1-sdk-nanoserver-1803 AS dotnet

FROM microsoft/dotnet-framework:4.7.2-runtime-windowsservercore-1803

ENV DOTNET_PATH="C:\Program Files\dotnet" 
COPY --from=dotnet ${DOTNET_PATH} ${DOTNET_PATH}

ENV PATH = "C:\Program Files\dotnet\:${PATH}"

ENV ASPNETCORE_URLS=http://+:80 `

DOTNET_RUNNING_IN_CONTAINERS=true `

DOTNET_SKIP_FIRST_TIME_EXPERIENCE="true"

我希望这里有人能指出问题所在。谢谢

运行setx/M PATH“C:\Program Files\dotnet;%PATH%”

你能用ENV PATH=“C:\Program Files\dotnet\:${PATH}”(没有空格)试试吗?@VineetPalan是的,我真的以为它可能在那里,但我只是那样试过,它还是一样,不起作用。
#this even tries removing spaces around the = 
#like some ones warned that could break the PATH
ENV PATH="C:\Program Files\dotnet:${PATH}"
ENV PATH = "C:\Program Files\dotnet\:$PATH"
ENV PATH = "C:\Program Files\dotnet:${PATH}"
ENV PATH = "C:\Program Files\dotnet:$PATH"   
ENV PATH = "C:\Program Files\dotnet;${PATH}"
ENV PATH = "C:\Program Files\dotnet;$PATH"
ENV PATH = "C:\Program Files\dotnet;$env:PATH"
# escape=`

FROM microsoft/dotnet:2.1-sdk-nanoserver-1803 AS dotnet

FROM microsoft/dotnet-framework:4.7.2-runtime-windowsservercore-1803

ENV DOTNET_PATH="C:\Program Files\dotnet" 
COPY --from=dotnet ${DOTNET_PATH} ${DOTNET_PATH}

ENV PATH = "C:\Program Files\dotnet\:${PATH}"

ENV ASPNETCORE_URLS=http://+:80 `

DOTNET_RUNNING_IN_CONTAINERS=true `

DOTNET_SKIP_FIRST_TIME_EXPERIENCE="true"