【发布时间】:2019-07-09 12:19:34
【问题描述】:
我的 docker-compose.yml 中有一个 mysql-db 和 prisma 映像。我希望 prisma 等待数据库准备好,否则 prisma 会不断重新启动并且它根本无法工作。我从here知道,我可以使用./wait-for-it,但搜索了一段时间后无法连接。
version: '3'
services:
prisma:
image: prismagraphql/prisma:1.25
restart: unless-stopped
ports:
- "4001:4466"
depends_on:
- db
# I added this command
command: ["./wait-for-it.sh", "db:33061", "--"]
environment:
PRISMA_CONFIG: |
managementApiSecret: server.secret.123
port: 4466
databases:
default:
connector: mysql
active: true
host: db
port: 3306
user: ***
password: ***
db:
image: mysql:5.7
restart: unless-stopped
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_USER: ***
MYSQL_ROOT_PASSWORD: ***
ports:
- "33061:3306"
volumes:
- /docker/mysql:/var/lib/mysql
我添加了上面的命令,但没有任何改变,甚至日志中没有错误,但据我了解,该命令在容器内运行。
- 如何将 ./wait-for-it.sh 放入容器中?
- 这甚至可以与命令一起以这种方式工作还是取决于 在棱镜图像上?
- 否则,我将如何实现等待?
我只有 docker-compose 文件并想做docker-compose up -d
【问题讨论】:
标签: docker docker-compose startup