#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%"