Tag: docker rabbitmq docker

使用rabbitmq docker镜像在rabbitmq.config中configurationssl

我的目标是用ssl支持来设置rabbitmq,以前使用位于主机的/etc/rabbitmqpath下的rabbitmq.config文件来实现。 现在我想能够configuration其他的rabbitmq用户和密码比默认的guest guest 。 我正在使用以下docker-composeconfiguration的rabbitmq docker镜像: version: '2' services: rabbitmq: build: ./rabbitmq ports: – "8181:8181" expose: – "15672" – "8181" volumes: – /etc/rabbitmq:/etc/rabbitmq environment: RABBITMQ_DEFAULT_USER: user123 RABBITMQ_DEFAULT_PASS: 1234 Rabbitmqconfiguration : [{rabbit, [ {loopback_users, []}, {heartbeat,0}, {ssl_listeners, [8181]}, {ssl_options, [{cacertfile, "/etc/rabbitmq/ca/cacert.pem"}, {certfile, "/etc/rabbitmq/server/cert.pem"}, {keyfile, "/etc/rabbitmq/server/key.pem"}, {verify,verify_none}, {fail_if_no_peer_cert,false}]} ]} ]. Rabbitmq dockerfile : from rabbitmq:management #and some […]

如何使用docker-compose环境variables来填充configuration文件

我是新来的docker写作。 我试图了解如何通过docker-compose传递环境variables来在Dockerfile的构build阶段填充configuration文件中缺less的variables值,所以在运行阶段,我将运行service- rabbitmq ,其configuration填充envvariables值。 在env_file: -compose yml文件中,我有一个env_file:以及environment: ,问题如何将它们传递给填充configuration文件。 任何帮助,一个想法将不胜感激,当然一个简单的例子。 示例rabbitmqconfiguration文件(需要用$ SSL_PORT的值填充envvariables): [{rabbit, [ {loopback_users, []}, {ssl_listeners, [$SSL_PORT]}, {ssl_options, [{cacertfile,"/etc/rabbitmq/ca/cacert.pem"}, {certfile,"/etc/rabbitmq/server/cert.pem"}, {keyfile,"/etc/rabbitmq/server/key.pem"}, {verify,verify_none}, {fail_if_no_peer_cert,false}]} ]} ].

我应该如何构造docker化的RabbitMQ?

我正尝试将我们的整体PHP Symfony应用程序迁移到一个更具可扩展性的Docker解决scheme。 应用程序和RabbitMQ之间有一些通信,我使用docker-compose将所有的容器,在这种情况下,应用程序和RabbitMQ服务器。 围绕这个话题进行了很多讨论,一个容器应该只产生一个stream程, Docker的最佳实践在这一点上有些模糊: 虽然这个口头禅的意图很好,但是每个容器只能有一个操作系统进程并不一定是真的。 除了容器现在可以用init进程产生的事实以外,一些程序可能会自己产生额外的进程。 为每个RabbitMQ使用者创build一个单独的Docker容器是否有意义? 这种感觉是“正确的”和“干净的”,不让rabbitmq服务器知道用于处理队列的语言/工具。 我想出了( docker-compose.yml相关部分): app : # my php-fpm app container rabbitmq_server: container_name: sf.rabbitmq_server build: .docker/rabbitmq ports: – "15672:15672" – "5672:5672" networks: – app_network rabbitmq_consumer: container_name: sf.rabbit_consumer extends: app depends_on: – rabbitmq_server working_dir: /app command: "php bin/console rabbitmq:consumer test" networks: – app_network 我可以在rabbitmq_consumer容器中使用nohup或其他方式在后台运行它们来运行多个消费者。 我想我的问题是: 我可以以某种方式自动执行“添加新消费者”,这样每次从代码中添加新消费者时,我都不需要编辑Docker(和其他人的“构build脚本”(和其他人一样))。 将RabbitMQ服务器与消费者分开是否有意义,还是应该将Rabbit服务器与在后台运行的消费者一起使用? 还是应该将它们放在应用程序容器的背景中?

不同主机中的Docker容器中的RabbitMQ集群

我想创build一个对故障非常有弹性的rabbitMQ集群。 到目前为止,我已经设法创build了一个具有三个节点的集群,这些节点中的每一个都在Docker容器中运行。 为了使节点能够join集群,主机需要通过链路相互认识。 现在,整个架构运行在云中(精确到AWS)。 到目前为止,我的容器只能在相同的AWS实例上运行时彼此链接。 我想创build一个节点可以躺在不同的主机上的方式创build集群。 到目前为止我已经尝试过: 改用federation / shovel。 这不符合我的目的,因为我需要CP定理而不是CA。 我需要我的节点是所有的副本,并能够作为客户的同一个经纪人。 创build一个docker群。 我能够设置docker群并通过docker群连接两个实例。 但是如果我试图在这个群上运行多个兔子容器,它们要么放在同一个节点上,要么我们不能将它们彼此链接起来。 所以我最终得到了同一个节点上运行的所有主机的星座。 有什么解决scheme或其他方法,我可以在不同的AWS实例/主机之间的docker容器内创build一个rabbitmMQ集群?