【发布时间】:2021-11-13 09:04:23
【问题描述】:
我在基于 centos:8 的 Docker 映像上运行 rabbitmq-server。
安装rabbitmq:
COPY yum/rabbitmq_erlang.repo /etc/yum.repos.d/rabbitmq_erlang.repo
RUN curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | bash && \
yum -y install rabbitmq-server && \
rabbitmq-plugins enable rabbitmq_management && \
chmod -R 777 /var/lib/rabbitmq/mnesia
由于安全要求,我以自定义非 root 用户身份运行 Docker。
然后我的启动脚本运行
...
rabbitmq-server -detached
...
但是,此命令会阻止并且不会让我的脚本继续运行。
我知道我可以跑
rabbitmq-server &
但如果可能的话,我更喜欢作为守护进程正常运行。它似乎与以非 root 身份运行紧密结合,因为以 root 身份运行相同的图像可以正常工作。
命令行参考:https://www.rabbitmq.com/rabbitmq-server.8.html#OPTIONS
【问题讨论】:
-
您是否在构建自定义rabbitmq 映像并且
rabbitmq-server是主要容器进程?或rabbitmq-server进程将在一些主容器进程(具有 pid 1)之外运行 -
它另外运行,这就是为什么我需要它作为守护进程运行
-
rabbitmq-server &运行成功了吗? -
@rok 是的,它运行成功
标签: docker rabbitmq centos dockerfile root