Bash docker compose命令wait for看起来没有保持服务的启动
我遵循了这个示例,并对脚本进行了wait_(已测试并运行): 现在在我的docker compose文件中,我有如下内容:Bash docker compose命令wait for看起来没有保持服务的启动,bash,docker,docker-compose,Bash,Docker,Docker Compose,我遵循了这个示例,并对脚本进行了wait_(已测试并运行): 现在在我的docker compose文件中,我有如下内容: version: '3.3' services: app1: image: x container_name: "xx" restart: always ports: - 222 networks: - x_network app2: image: "y&quo
version: '3.3'
services:
app1:
image: x
container_name: "xx"
restart: always
ports:
- 222
networks:
- x_network
app2:
image: "y"
container_name: "y2"
depends_on:
- app1
command: ["./wait-for-it.sh", "xx"]
ports:
- 8444
links:
- app1
networks:
- x_network
networks:
x_network:
driver: bridge
但是当我启动时,我没有看到app2正在等待,我可以查看一些日志来验证脚本是否正常工作吗?您的脚本正在使用
docker
命令,但脚本正在作为app2的命令/入口点运行。我希望您的app2容器在运行docker容器ls
时失败。尝试在脚本顶部添加set-x
和set-e
,然后重试。容器崩溃后,您应该会看到一些有用的输出(docker logs y2
)。它正在检查app1是否准备就绪,而不是自己检查。是的,这是您的意图,但只有主机可以使用docker
命令来查询容器状态。您的脚本正在app2容器中运行,因此无法访问docker
命令。
version: '3.3'
services:
app1:
image: x
container_name: "xx"
restart: always
ports:
- 222
networks:
- x_network
app2:
image: "y"
container_name: "y2"
depends_on:
- app1
command: ["./wait-for-it.sh", "xx"]
ports:
- 8444
links:
- app1
networks:
- x_network
networks:
x_network:
driver: bridge