2 回答
TA贡献1829条经验 获得超13个赞
我添加了额外的主机并将我的 mongo uri 更改为host.docker.internal 它解决了我的问题
version: "3.9"
services:
worker:
image: worker
environment:
- MONGO_URI="mongodb://host.docker.internal:27017/"
- MONGO_DATABASE=e-learning
- RABBITMQ_URI=amqp://user:password@rabbitmq:5672/
- RABBITMQ_QUEUE=upload
networks:
- app_network
external_links:
- e-learning
- rabbitmq
volumes:
- worker:/go/src/github.com/worker:rw
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
app_network:
external: true
volumes:
worker:
TA贡献1817条经验 获得超14个赞
更改MONGO_URI="mongodb://localhost:27017/"
为MONGO_URI="mongodb://e-learning:27017/"
(假设e-learning
是 mongo 容器)。
在连接到桥接网络(默认)的容器中,localhost (127.0.0.1) 是容器本身。因此,您的应用程序容器正在尝试通过27017
自身端口访问数据库(而不是在主机或数据库容器上)。最简单的解决方案是使用docker 提供的容器之间的自动 DNS 解析。
- 2 回答
- 0 关注
- 100 浏览
添加回答
举报