Docker контейнеры выходят из-за супервизора

Я создал образ из Ubuntu 18 как базовый образ. Он имеет несколько сервисов, таких как nginx, php-fpm и ssh.

Все работало, контейнер создавался, я мог получить доступ к контейнеру и всему, что связано с контейнером.

Но мне пришлось вручную запустить nginx и php-fpm, зайдя внутрь контейнера. Я сделал небольшой поиск в Google и нашел руководителя.

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

При проверке журналов контейнера с помощью команды docker logs container-name Я получаю ошибку:

/usr/lib/python2.7/dist-packages/supervisor/options.py:297: UserWarning: Supervisord работает от имени пользователя root и ищет свой файл конфигурации в расположениях по умолчанию (включая текущий рабочий каталог); Возможно, вы захотите указать аргумент "-c", указывающий абсолютный путь к файлу конфигурации для повышения безопасности. 'Supervisord работает с правами root и выполняет поиск'

В моем Dockerfile код администратора выглядит так:

RUN apt-get install -y supervisor
.
.
.
.
COPY ./supervisor/supervisord.conf /etc/supervisor/supervisord.conf
COPY ./supervisor/sshd.conf /etc/supervisor/conf.d/sshd.conf
COPY ./supervisor/nginx.conf /etc/supervisor/conf.d/nginx.conf
COPY ./supervisor/php-fpm.conf /etc/supervisor/conf.d/php-fpm.conf
.
.
.
.
CMD supervisord -n -c /etc/supervisor/supervisord.conf

Я сделал много поиска в Google и не смог решить проблему. Я буду очень признателен, если кто-то может помочь решить эту проблему. Дайте мне знать, нужна ли какая-либо другая информация.

0 ответов

В вашем supervisord.conf добавьте это:

[Supervisord]

nodaemon = верно

Это инструктирует супервизора начинать на переднем плане, а не как сервис. У меня была такая же проблема, но эта линия решила ее.

Я получил это от этого.

Другие вопросы по тегам