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 = верно
Это инструктирует супервизора начинать на переднем плане, а не как сервис. У меня была такая же проблема, но эта линия решила ее.
Я получил это от этого.