Назад | Перейти на главную страницу

Можно ли иметь контейнер докеров ubuntu без systemd

Я выяснил, что многие установки пакетов вызывают systemd для запуска своего программного обеспечения. Проблема в том, что если вы хотите установить программное обеспечение внутри докера, это приведет к сбою установки. Потому что по умолчанию Debian завершает установку неудачно, если происходит сбой в сценарии после установки.

Команда Elasticsearch сделал обходной путь для этого (я не уверен, что они понимают, что это исправляет для пользователей докеров). Но это проблема для многих пакетов.

Есть ли способ заставить их работать в докере debian / ubuntu?

Это не ответ, насколько я понимаю, хорошего ответа нет.

Но вот что делать:

  1. Самостоятельная установка программного обеспечения
  2. Отправьте патч сопровождающему пакета с этим исправлением
systemctl daemon-reload || true
# instead of
systemctl daemon-reload

Все, что называется после systemctl, вы должны предложить добавить || true на случай, если есть такой вызов в сценарии после установки вашего пакета. Это исправляет 2 случая:

  1. Возможно, что systemctl замаскирован.
  2. Это возможно systemctl не работает (потому что запускается не как 1-й pid) как в докерах.