我使用Dockerfile构建一个映像,我想在安装后立即将用户添加到RabbitMQ.问题是,在构建期间,docker容器的主机名与运行结果映像时不同.RabbitMQ失去了那个用户; 因为更改了主机名,它使用另一个DB.
我无法更改容器内的文件/etc/hosts
和/etc/hostname
文件,看起来RabbitMQ没有选择我的更改RABBITMQ_NODENAME
和HOSTNAME
变量.
我发现唯一有效的是在启动RabbitMQ代理之前运行它:
echo "NODENAME=rabbit@localhost" >> /etc/rabbitmq/rabbitmq.conf.d/ewos.conf
Run Code Online (Sandbox Code Playgroud)
但是我将不得不一直运行更改主机名的docker镜像.
docker run -h="localhost" image
Run Code Online (Sandbox Code Playgroud)
关于可以做什么的任何想法?也许解决方案是将用户添加到RabbitMQ而不是构建但是在运行图像上?
这里是如何正确配置Dockerfile的示例:
ENV HOSTNAME localhost
RUN /etc/init.d/rabbitmq-server start ; rabbitmqctl add_vhost /test; /etc/init.d/rabbitmq-server stop
Run Code Online (Sandbox Code Playgroud)
这是记住你的配置.
是的,我建议在容器第一次运行时添加用户。
您可以运行一个包装器脚本来处理所有设置,然后启动 RabbitMQ,而不是直接启动 RabbitMQ。如果包装器脚本的最后一步是进程启动,请记住您可以使用exec
新进程来替换脚本本身。
归档时间: |
|
查看次数: |
5251 次 |
最近记录: |