我正在尝试创建一个使用预定义用户运行 RabbitMQ 的 Dockerfile,但在 Dockerfile 构建步骤期间,设置会丢失。
这是我的 Dockerfile:
FROM rabbitmq:management
# Set node name to try to avoid settings being lost during intermediate containers creation
RUN echo "NODENAME=rabbit@localhost" > /etc/rabbitmq/rabbitmq-env.conf
# Start server in intermediate container and configure user
RUN rabbitmq-server -detached \
&& sleep 5 \
&& rabbitmqctl add_user test test \
&& rabbitmqctl set_user_tags test management \
&& rabbitmqctl set_permissions -p / test ".*" ".*" ".*" \
&& rabbitmqctl list_users
# Start server in intermediate container just to show that user configuration is lost
RUN rabbitmq-server -detached \
&& sleep 5 \
&& rabbitmqctl list_users
# Run server in final container as main/daemon process
CMD rabbitmq-server
我用来构建映像和运行容器的命令是:
docker build -t rabbitmq:test .
docker run -d -p 5672:5672 -p 15672:15672 rabbitmq:test
我正在使用 boot2docker 在 Windows 机器上运行容器,但它似乎并不相关。
输出显示,在每个 Dockerfile 步骤之后,当创建中间容器时,设置都会丢失。
有谁知道如何修理它?我已经坚持了两天了。