docker - rabbitmq-server - 与非 root 用户分离被阻塞

标签 docker rabbitmq centos dockerfile root

我在 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 Dockerfile 的 Dockerfile 说明中仔细复制.
  • 当您的多服务容器接收到 SIGTERM 信号时,其处理程序必须调用 rabbitmq 的正常关闭也是。

  • 您可能需要检查 these docker 官方说明你可以如何尝试去做。

    关于docker - rabbitmq-server - 与非 root 用户分离被阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69241148/

    相关文章:

    centos - SELINUX 中的 nis_enabled 是什么?

    centos - 如何在 CentOS 上设置 cron 作业

    docker - 如何从Docker容器连接到远程服务

    docker - 如何使用 Windows 或 mac 主机获取 Docker 音频和输入?

    java - 为什么rabbitmq fanout Exchange只能收到一个订阅消息?

    windows - 在 Windows 7 机器上安装后 RabbitMQ 服务器没有启动

    跨多个rabbitMQ实例的RabbitMQ RPC

    node.js - 如何在命令行终端(vty)中运行 Electron 二进制文件

    docker - 为什么我无法从其他节点 IP 访问 kubernetes pod?

    linux - NginX 作为多个子域的 HTTPS 反向代理?