gpt4 book ai didi

docker - 如何为 Docker Compose 配置 dns 条目

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

我正在设置一个 Spring 应用程序以使用 compose 运行。应用程序需要建立到 ActiveMQ 的连接,要么是为开发人员在本地运行,要么是到现有实例以进行登台/生产。

我设置了以下对本地开发人员非常有用的设置:

amq:
image: rmohr/activemq:latest
ports:
- "61616:61616"
- "8161:8161"
legacy-bridge:
image: myco/myservice
links:
- amq

在应用程序配置中,我将 AMQ 连接声明为
broker-url=tcp://amq:61616

运行 docker-compose up 效果很好,activeMQ 在本地启动,我的应用程序 constiner 启动并连接到它。

现在,我需要为暂存/生产进行设置,其中 ActiveMQ 实例在基础架构内的现有硬件上运行。我的想法是要么使用 spring 配置文件来处理不同的配置,在这种情况下,'broker-url=tcp://amq:61616' 的应用程序配置条目将变成类似 broker-url=tcp://some.host.here:61616 的内容。或者找到某种方法在我的生产 docker-compose.yml 中创建一个 dns 条目,该条目将指向 amq dns 进入相关的登台或生产队列。

这里最好的方法是什么,如果是 DNS,我如何在 compose 中设置它?

谢谢!

最佳答案

使用 extra_hosts旗帜

首先想到的是使用 Compose's extra_hosts 旗帜:

legacy-bridge:
image: myco/myservice
extra_hosts:
- "amq:1.2.3.4"

这不会创建 DNS 记录,而是在容器的 /etc/hosts 中创建一个条目。文件,有效地允许您继续使用 tcp://amq:61616作为您应用程序中的代理 URL。

使用大使容器

如果您不满足于直接指定生产代理的 IP 地址并希望利用现有的 DNS 记录,您可以使用 ambassador pattern :
amq-ambassador:
image: svendowideit/ambassador
command: ["your-amq-dns-name", "61616"]
ports:
- 61616
legacy-bridge:
image: myco/myservice
links:
- "amq-ambassador:amq"

关于docker - 如何为 Docker Compose 配置 dns 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42175951/

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