我正在尝试使用“ docker-compose up” 通过docker compose运行容器,但出现错误。
我必须为我的应用程序nodejs容纳一个容器,为我的数据库mongo db容纳另一个容器,它们彼此连接。
version: "2"
services:
app:
container_name: sam-node
restart: always
image: amazus/sam-apis
ports:
- "3000:3000"
links:
- mongo
mongo:
container_name: sam-mongo
image: amazus/sam-data
ports:
- "27017:27017"
我得到的错误是:第一次连接时无法连接到服务器[mongo:27017]
答案 0 :(得分:1)
添加depends_on
参数
app:
container_name: sam-node
restart: always
image: amazus/sam-apis
ports:
- "3000:3000"
depends_on:
- mongo
links:
- mongo
此外,如果要在完全初始化父容器之后启动依赖容器,则应添加command
参数以检查父容器是否已初始化和构建。
阅读更多here
为什么会需要这个?
因为某些服务(例如数据库)可能会初始化一段时间,并且如果您有一些需要立即响应的特定逻辑,则最好在父项初始化完成后启动依赖容器。