【发布时间】:2022-01-18 04:30:03
【问题描述】:
我将 Docker 用于“FROM node:17-alpine”。 docker-compose 在启动依赖的 docker api 容器之前等待 MySQL 容器准备好。
我尝试使用wait-for-it.sh,但它不能在节点 alpine 上运行。
我可以知道如何等待 api 容器直到 db 容器启动并运行。
【问题讨论】:
-
你应该可以使用节点套接字模块来检查数据库端口是否打开
我将 Docker 用于“FROM node:17-alpine”。 docker-compose 在启动依赖的 docker api 容器之前等待 MySQL 容器准备好。
我尝试使用wait-for-it.sh,但它不能在节点 alpine 上运行。
我可以知道如何等待 api 容器直到 db 容器启动并运行。
【问题讨论】:
也许尝试使用https://github.com/raphaelahrens/wait-for-it 之类的东西,它使用nc,所以它可能会在 alpine linux 上运行。
如果没有,则可以选择运行https://github.com/ettore26/wait-for-command
与论据
./wait-for-command.sh -c 'nc -z db 5432' && [your-after-the-wait-commands]
只需为您的 mysql 端口更改 5432
【讨论】: