Как вы устанавливаете что-то, что необходимо перезапустить в файле Docker?

86
4

Предположим, что у меня есть инструкции по установке следующим образом:


    Сделайте что-нибудь.
    Перезагрузите компьютер.
    Сделайте что-нибудь еще.

Как это выразить в файле Docker?

спросил(а) 2021-01-19T21:48:05+03:00 2 месяца, 3 недели назад
1
Решение
75

Это полностью зависит от того, почему они требуют перезагрузки. Для Linux перезагрузка машины обычно указывает на модификацию ядра, хотя это возможно для чего-то более простого, как изменение прав пользователя (которое будет обрабатываться путем выхода из системы и обратно). Если программа пытается изменить уровень ОС на ядро, она должна завершиться неудачей, если она будет выполнена внутри контейнера. По умолчанию контейнеры изолируют и ограничивают то, что приложение может выполнять с текущей операционной системой хоста, которая влияет на хост или другие запущенные контейнеры.


Если перезагрузка заключается в том, чтобы заставить службу приложения перезагрузиться, вы должны понимать, что этот проект плохо сопоставляется с контейнером, поскольку каждая команда RUN выполняет именно эту команду в изолированной среде. И запустив только эту команду, это также указывает, что любые сервисы ОС, которые обычно запускаются при загрузке ОС (cron, sendmail или ваше приложение), не будут запускаться в контейнере. Поэтому вам нужно найти способ запустить команду установки в дополнение к перезапуску любых зависимых сервисов.

В последнем случае я могу подумать, что они хотят, чтобы разные пользовательские разрешения вступили в силу для зарегистрированного пользователя. В этом случае следующая команда RUN будет запускать запрошенную команду с любым измененным доступом из предыдущих команд RUN. Поэтому нет необходимости предпринимать какие-либо конкретные действия для выполнения перезагрузки, просто выполните шаги установки, как если бы у вас был полный перезапуск между каждым шагом.

ответил(а) 2021-01-19T21:48:05+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема