如何为Docker Composeconfigurationdns条目
我正在设置一个Spring应用程序来运行使用撰写。 应用程序需要build立到ActiveMQ的连接,或者为开发人员本地运行,或者为现有的分段/生产实例运行。
我设置了以下对于本地开发非常有用的工具:
amq: image: rmohr/activemq:latest ports: - "61616:61616" - "8161:8161" legacy-bridge: image: myco/myservice links: - amq
并在应用程序configuration中声明AMQ连接为
broker-url=tcp://amq:61616
运行docker-compose up工作得很好,activeMQ在本地启动,我的应用程序强制启动并连接到它。
现在,我需要将其设置为分段/生产,其中ActiveMQ实例正在基础架构中的现有硬件上运行。 我的想法是要么使用弹簧configuration文件来处理不同的configuration,在这种情况下,'broker-url = tcp:// amq:61616'的应用程序configuration条目会变成类似broker-url=tcp://some.host.here:61616
或find一些方法来在我的生产docker-compose.yml中创build一个dns条目,它将指向一个amq
dns条目到相关的分段或生产队列。
这里最好的办法是什么,如果是DNS,我该如何设置?
谢谢!
使用extra_hosts
标志
首先想到的是使用Compose的extra_hosts
标志:
legacy-bridge: image: myco/myservice extra_hosts: - "amq:1.2.3.4"
这不会创buildDNSlogging,而是创build容器的/etc/hosts
文件中的条目,从而使您可以继续在应用程序中使用tcp://amq:61616
作为代理url。
使用大使容器
如果您不满意直接指定生产经纪人的IP地址,并希望利用现有的DNSlogging,则可以使用大使模式 :
amq-ambassador: image: svendowideit/ambassador command: ["your-amq-dns-name", "61616"] ports: - 61616 legacy-bridge: image: myco/myservice links: - "amq-ambassador:amq"
- 如何重新启动一个新的弹簧引导JAR容器没有绝对path到jar子?
- Docker-compose不会为spring启动应用程序生成日志文件
- 使用docker和teamcity编写dockerfile部署和运行Spring Boot应用程序
- 在AWS上的Docker中Spring引导logging系统出现内存泄漏?
- jhipster-docker:spring-boot不会以控件C结束
- Docker MongoDB无法从外部虚拟机访问
- Intellij,Spring开发工具远程,Docker,错误意外的404响应上传类文件
- 在Docker容器中访问主机上的MySQL数据库
- Spring引导应用程序不适用于AWS