我在 centos:8
上运行 rabbitmq-server基于 Docker 镜像。
要安装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-server -detached
是运行方式rabbitmq
在后台。这些lines来自官方rabbitmq
Dockerfile 可能会有所帮助。
但是,运行 rabbitmq
并且非常不鼓励在 Docker 容器中作为非 pid 1 的任何基础设施服务,并且违反 docker 最佳实践。
给你几个理由:
rabbitmq
的正常关闭也是。 您可能需要检查 these docker 官方说明你可以如何尝试去做。
关于docker - rabbitmq-server - 与非 root 用户分离被阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69241148/