Docker-compose depend_on

我有一个mongodb服务和一个运行docker-compose的testing服务:

services: mongo: image: myrepo/mongo ports: - "27017:27017" test: depends_on: - mongo image: myrepo/elixir-tests command: sh start.sh 

在start.sh脚本我试图运行:

 mongo 172.20.0.10:27017/wc-app-sandbox --eval "printjson(....))" 

但我得到以下错误:

 start.sh: 10: start.sh: mongo: not found 

我的问题是:为什么错误发生 – 不是depends_on属性假设自动包含服务依赖关系? 如这里所述 :

依赖于取决于

表示服务之间的依赖关系,这有两个作用:

docker-compose up将以依赖性顺序启动服务。 在下面的例子中,db和redis将在web之前启动。 docker-up up SERVICE将自动包含SERVICE的依赖关系。 在下面的例子中,docker-up up web也会创build并启动db和redis。

这个错误并不意味着“我找不到mongo容器的路由”,这意味着“我找不到mongo执行bin。可能image myrepo/elixir-tests不包含mongo-client 。尝试安装apt update && apt install mongodb-clients到你的容器中。

和mongo连接string应该看起来像mongo mongo:27017/wc-app-sandbox --eval "printjson(....))"