Контроль процессов в контейнере супервизором - PullRequest
0 голосов
/ 31 января 2019

У меня есть контейнер с php-fpm в качестве основного процесса.Возможно ли создать еще один контейнер с супервизором в качестве основного процесса для запуска и управления каким-либо процессом-демоном в контейнере php?Например, в php conainer есть некоторый потребитель, который потребляет сообщения от rabbitMQ.Я хочу контролировать этих потребителей супервизором, но я не хочу запускать супервизор в контейнере php.Является ли это возможным?

1 Ответ

0 голосов
/ 31 января 2019

Q: У меня есть контейнер с запущенным php-fpm в качестве основного процесса.Можно ли создать еще один контейнер с supervisor в качестве основного процесса для запуска и управления другими процессами-демонами в контейнере php?

A: Я немного восстановил вашу формулировку проблемы, пустьЯ знаю, если это не имеет смысла.

Короткий ответ, возможно. Однако вы не хотите иметь вложенные контейнеры в одном, так как это считается anti-pattern и не является архитектурой micro-service.

Как правило, у вас будет только один main processработает в контейнере.Это так, что когда process умрет, контейнер остановится и выйдет.Следовательно, не принося с собой другой рабочий processes.

Идеальной архитектурой было бы иметь один контейнер для rabbitmq и другой контейнер для php процесса.Самый простой способ развернуть их на одном и том же docker network - это файл docker-compose.

Вас могут заинтересовать следующие атрибуты links / depends_on и expose до port forwardпорт вашего rabbitMq в ваш php контейнер.

https://docs.docker.com/compose/compose-file/#expose

https://docs.docker.com/compose/compose-file/#depends_on

...