Этап сборки Docker: обновление профиля пользователя / сеанса

#docker #.net-core

#docker #.net-core

Вопрос:

У меня есть файл docker, который устанавливает .NET 5 SDK, а затем пытается установить инструмент с помощью dotnet tool install .

Сделав это, я получаю предупреждение:

Поскольку вы только что установили .NET SDK, вам необходимо будет выйти из системы или перезапустить сеанс перед запуском установленного вами инструмента.

Как мне выйти из системы или перезапустить сеанс во время сборки docker?

Я пытался RUN echo "export PATH=/new/path:${PATH}" >> /root/.bashrc , но, похоже, это ничего не изменило.


Пример в паре вниз:

 FROM ubuntu as base-updates

RUN apt-get install -y wget
RUN wget https://packages.microsoft.com/config/ubuntu/20.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
RUN dpkg -i packages-microsoft-prod.deb
RUN apt-get update; 
  apt-get install -y apt-transport-https amp;amp; 
  apt-get update amp;amp; 
  apt-get install -y dotnet-sdk-5.0

RUN dotnet tool install --global Amazon.Lambda.Tools

## executing the newly installed tool fails
RUN dotnet lambda --help
 

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

1. Я предполагаю, что необходим минимальный пример для воспроизведения людьми.

2. Вы когда-нибудь проверяли эту проблему? dotnet-docker / проблема

Ответ №1:

Обходите с https://github.com/dotnet/dotnet-docker/issues/520 (большое спасибо @myeongkilkim!):

Явное обновление ПУТИ сделало свое дело: ENV PATH="${PATH}:/root/.dotnet/tools"

 FROM ubuntu as base-updates

RUN apt-get install -y wget
RUN wget https://packages.microsoft.com/config/ubuntu/20.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
RUN dpkg -i packages-microsoft-prod.deb
RUN apt-get update; 
  apt-get install -y apt-transport-https amp;amp; 
  apt-get update amp;amp; 
  apt-get install -y dotnet-sdk-5.0

# FIX:
# manually add dotnet tools path to path variable
# https://github.com/dotnet/dotnet-docker/issues/520
ENV PATH="${PATH}:/root/.dotnet/tools"

RUN dotnet tool install --global Amazon.Lambda.Tools

## executing the newly installed tool now works :)
RUN dotnet lambda --help