docker - 保持 Rabbitmq 在 Docker 容器中运行
问题描述
我用 Dockerfile 制作了一个 Docker 映像。我使用 RUN 命令安装了 Rabbitmq:
&& dnf -y --nogpgcheck install rabbitmq-server \
&& rabbitmq-plugins enable rabbitmq_management \
我尝试在 supervisord.d/ 中创建一个 .ini 文件,甚至在容器中复制并启动一个脚本,以便 Rabbitmq 可以启动、添加一个新用户并一直运行。但是当我启动容器时,Rabbitmq 没有运行。
init.sh 文件(如果我在进入容器后手动运行它,它运行良好):
(
rabbitmq-server start & \
sleep 5 ; \
rabbitmqctl add_user admin mypass 2>/dev/null ; \
rabbitmqctl set_user_tags admin administrator ; \
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" ;
)
现在,supervisord.d/rabbitmq-server.ini 文件:
[program:rabbitmq-server]
;directory=/usr/local/
command=/sbin/rabbitmq-server -D
autostart=true
autorestart=true
startsecs=10
redirect_stderr=true
priority=990
注意:我将 rabbitmq.config 文件复制到容器中以更改侦听端口。
我怎么能像我一样继续拥有这些新端口并添加这个新用户,并在容器启动时设法运行 Rabbitmq(我现在不能做什么)?
谢谢你。
解决方案
我不知道为什么 Docker 不能启动这个……但是 Kubernetes 可以。这对我来说已经足够了。如果有人知道为什么,我想听听。但实际上,我会更深入地进行测试。
谢谢您的帮助。
推荐阅读
- java - 使用Eclipse自定义Java类导入问题
- php - 如何使用 php cURL 从 url 下载 pdf?
- ag-grid - 类型“IFilterComp”上不存在属性“resetFilterValues”
- deployment - 使用 Airflow 实现零停机部署
- php - sendinblue 未连接到 API
- bash - 如何去混淆这个 shell 脚本?
- java - 如何解决alertdialog中代码EditText将空白值存储到textview中的问题
- c# - 以 Windows 登录用户身份从服务启动进程
- python - 合并两个字典列表
- asp.net - 使用 Rider 在 linux 上调试 ASP.NET Web API 2