docker container在运行后立即退出[mosquitto broken container]

问题描述 投票:-1回答:2

你好,我有一个docker的问题,最近我使用dockerfile创建一个“mosquitto-mqtt”的图像,使我自己的破坏mqtt与ssl保护。我建立dockerfile一切都很好,我没有问题,但如果我运行一个新的容器与“docker run -itd --name broken ce69ee4b2f4e”一个容器运行并自动退出,如果检查日志一切都很好“[好的。]启动网络守护进程:: mosquitto。“我没有为什么?检查我的dockerfile。我需要帮助来解决它,谢谢你

#Download base image debian
FROM debian:latest

#Update system
RUN apt-get update -y

#Install Wget and gnup2
RUN apt-get install wget -y && apt-get install gnupg2 -y

#Download and add key
RUN wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
RUN apt-key add mosquitto-repo.gpg.key
RUN rm mosquitto-repo.gpg.key

## append apt mirror for debian
RUN echo "# mirror" >> /etc/apt/source.list
RUN echo "deb http://repo.mosquitto.org/debian stretch main" >> /etc/apt/source.list

#Update and upgrade system
RUN apt-get update -y && apt-get upgrade -y

#install mosquitto
RUN apt-get install mosquitto -y

#Copy file configuration
COPY mosquitto.conf /etc/mosquitto

#Copy certificate folder
COPY certs/mosquitto-ca.crt /etc/mosquitto/certs
COPY certs/mosquitto-server.crt /etc/mosquitto/certs
COPY certs/mosquitto-server.key /etc/mosquitto/certs

#Run command
ENTRYPOINT ["/etc/init.d/mosquitto", "start"]

日志打印

[ ok .] Starting network daemon:: mosquitto.

docker ps -a

CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                     PORTS               NAMES
d00bd23ae2d6        ce69ee4b2f4e              "/etc/init.d/mosquit…"   9 minutes ago       Exited (0) 9 minutes ago                       broken

linux docker debian containers mosquitto
2个回答
1
投票

容器是进程的包装器,当进程退出时,容器退出。在这种情况下:

ENTRYPOINT ["/etc/init.d/mosquitto", "start"]

这个过程是/etc/init.d/mosquitto几乎肯定会运行,在后台生成一个守护进程,然后退出(init.d中的任何标准)。您应该使用前景选项直接运行mosquito(如果有)。

如果这是可能的话,像supervisord这样的东西将是一个不太理想的后备,能够观看后台守护进程。

如果这些都不起作用,您可以从以tail -f /dev/null结尾的脚本运行命令,但这将是最糟糕的选择,因为您忽略了任何错误。


0
投票

有用 !我找到了解决方案,它只需要在命令中添加“-C”并指定目录

这是一个很好的方法

ENTRYPOINT ["mosquitto", "-c", "/etc/mosquitto/mosquitto.conf"]

谢谢大家帮助我!

© www.soinside.com 2019 - 2024. All rights reserved.