【发布时间】:2019-03-09 11:53:43
【问题描述】:
我是 docker 新手,我正在尝试 dockerize 这个我用 Golang 编写的应用程序。它是一个与rabbitmq和mongodb交互的简单web服务器
它从 toml 文件中获取凭据并将其加载到配置结构中,然后在端口 3000 上启动应用程序服务器。这些是凭据
mongo_server = "localhost"
database = "collect_db"
rabbitmq_server = "amqp://guest:guest@localhost:5672/"
如果它无法连接到这些 url,它会失败并出现错误。以下是我的 docker-compose.yml
version: '3'
services:
rabbitmq:
image: rabbitmq
ports:
- 5672:5672
mongodb:
image: mongo
ports:
- 27017:27017
web:
build: .
image: palash2504/collect
container_name: collect_service
ports:
- 3000:3000
depends_on:
- rabbitmq
- mongodb
links: [rabbitmq, mongodb]
但它无法在用于本地开发的 url 上与 rabbitmq 连接,即amqp://guest:guest@localhost:5672/
我意识到,rabbitmq 容器可能运行在与配置文件中提供的地址不同的地址上。
我想知道设置任何 env 凭据以能够将我的应用程序连接到 rabbitmq 的正确方法。
还有什么方法最适合更改我的应用程序代码以初始化与外部服务的连接?我正在考虑放弃 config.toml 文件并使用 os.Getenv 和 os.Setenv 来获取连接的 url。
【问题讨论】:
标签: docker docker-compose rabbitmq