Dockerfile, добавляющий переменную окружения PATH, не работает?

#docker #dockerfile

#docker #dockerfile

Вопрос:

Я думаю, что это просто, и поиск в Google действительно дает много ответов, но не уверен, почему у меня это не работает.

Во-первых, без какого-либо ENV PATH = набора я могу проверить, что PATH имеет значение по умолчанию

C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:UsersContainerAdministratorAppDataLocalMicrosoftWindowsApps

Я проверяю это, просто запуская изображение и используя CMD echo %PATH% .

Однако при следующей настройке все значения по умолчанию исчезают, оставляя только новое значение (похоже, что оно не может получить значение по умолчанию или просто это значение пустое):

 ENV PATH = "C:Program Filesdotnet:${PATH}"
  

Вот различные попытки (не работают):

 #this even tries removing spaces around the = 
#like some ones warned that could break the PATH
ENV PATH="C:Program Filesdotnet:${PATH}"
ENV PATH = "C:Program Filesdotnet:$PATH"
ENV PATH = "C:Program Filesdotnet:${PATH}"
ENV PATH = "C:Program Filesdotnet:$PATH"   
ENV PATH = "C:Program Filesdotnet;${PATH}"
ENV PATH = "C:Program Filesdotnet;$PATH"
ENV PATH = "C:Program Filesdotnet;$env:PATH"
  

С одним из вышеуказанных параметров ПУТЬ (проверяется echo %PATH% при выполнении cmd в запущенном контейнере) становится просто C:Program Filesdotnet (возможно, в некоторых случаях добавляется еще несколько символов).

На самом деле я хотел бы биться головой о стену из-за такой простой проблемы, но у меня ушло несколько часов. Действительно?

И вот полный файл 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 Filesdotnet" 
COPY --from=dotnet ${DOTNET_PATH} ${DOTNET_PATH}

ENV PATH = "C:Program Filesdotnet:${PATH}"

ENV ASPNETCORE_URLS=http:// :80 `

DOTNET_RUNNING_IN_CONTAINERS=true `

DOTNET_SKIP_FIRST_TIME_EXPERIENCE="true"
  

Я надеюсь, что кто-нибудь здесь мог бы указать, что не так. Спасибо!

Комментарии:

1. Можете ли вы попробовать с помощью ENV PATH =»C:Program Filesdotnet : ${PATH}» (без пробела)

2. @VineetPalan да, действительно, я думал, что это может быть там, но я только что попробовал подобное, и это то же самое, не работает.

Ответ №1:

RUN setx /M PATH "C:Program Filesdotnet;%PATH%"