gpt4 book ai didi

docker - 将代理定义导入 Dockerized RabbitMQ

转载 作者:行者123 更新时间:2023-12-02 18:02:34 27 4
gpt4 key购买 nike

我有一个 RabbitMQ 代理,其中已经定义了一些交换和队列。我知道我可以通过 HTTP API 导出和导入这些定义。我想对它进行 Dockerize,并在它启动时导入所有代理定义。

理想情况下,它会像通过 API 那样轻松完成。我可以编写一堆 rabbitmqctl 命令,但是有很多定义,这可能需要相当长的时间。此外,其他人通过 Web 界面所做的每一项更改都必须插入。

我已经通过编写一个使 curl 请求休眠并启动服务器的脚本来实现我想要的,但这似乎很容易出错,而且真的不优雅。有没有更好的方法来进行定义导入/导出
,或者这是可以做到的最好的?

我的 Dockerfile:

FROM rabbitmq:management
LABEL description="Rabbit image" version="0.0.1"
ADD init.sh /init.sh
ADD rabbit_e6f2965776b0_2015-7-14.json /rabbit_config.json
CMD ["/init.sh"]

初始化文件
sleep 10 && curl -i -u guest:guest -d @/rabbit_config.json -H "content-type:application/json" http://localhost:15672/api/definitions -X POST &

rabbitmq-server $@

最佳答案

  • 使用 rabbitmqadmin export rabbit.definitions.json 导出定义。
  • 使用 Dockerfile 将它们添加到图像中:ADD rabbit.definitions.json /tmp/rabbit.definitions.json
  • 启动容器时添加环境变量,例如使用docker-compose.yml:
     environment:
    - RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS=-rabbitmq_management load_definitions "/tmp/rabbit.definitions.json"
  • 关于docker - 将代理定义导入 Dockerized RabbitMQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31403873/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com