systemctl запускает сервис в скрипте Dockerfile - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь создать образ docker, используя CentOS 7.7 в качестве базового docker изображения, которое является systemd изображением. Теперь мое требование таково: установите первый RPM, который запускает systemctl start my-process, и этот процесс необходимо запустить, чтобы установить мой второй RPM. Но так как Dockerfile не может запустить процесс с помощью systemctl, я не могу правильно установить любой RPM. Я получаю следующую ошибку:

Failed to get D-Bus connection: Operation not permitted

1 Ответ

0 голосов
/ 20 апреля 2020

Клиентский инструмент "systemctl" мало что делает. Он ищет сокет для связи с демоном systemd, работающим на PID 1, т.е. с программой, которую вы запускали из ENTRYPOINT. Если вы удалили службу systemd, вы получите такую ​​ошибку.

Если вы хотите использовать контейнер, например, виртуальную машину, то может быть лучше запустить другой диспетчер служб на PID-1. В качестве примера можно привести службу docker -systemctl-replace .

Мне было хорошо переносить приложения в контейнеры, которые на самом деле не предназначались для этого.

...