Контейнеры являются оболочкой для процесса, и когда этот процесс завершается, контейнер завершается.В этом случае:
ENTRYPOINT ["/etc/init.d/mosquitto", "start"]
Это процесс /etc/init.d/mosquitto
, который почти наверняка запускается, порождает демона в фоновом режиме и завершается (стандартно для всего в init.d).Вместо этого вы должны запускать mosquito напрямую с параметрами переднего плана, если они доступны.
Если это возможно, то что-то вроде supervisord будет менее чем оптимальным откатом с возможностью наблюдать за фоновым демоном.
Иесли ни один из этих способов не работает, вы можете запустить свою команду из сценария, заканчивающегося tail -f /dev/null
, но это будет наихудшим вариантом, поскольку вы игнорируете любые ошибки.