一、该问题的重现步骤是什么?
如何指定容器的启动顺序,让mysql先启动,nacos在mysql启动后再启动,以及其他应用容器在nacos成功启动后再启动?
在服务器在断电重启等情况下,nacos无法正常启动,其他容器也因为nacos容器没有启动而启动失败,同时服务器性能有限,多个容器同时启动会导致卡顿导致无法正常启动
2.
3.
二、你期待的结果是什么?实际看到的又是什么?
希望容器之间的启动顺序可以指定,nacos在mysql成功启动后再启动,其他容器在nacos容器启动后启动。
目前实际运行结果是,mysql还没有正常启动,nacos和其他容器就都启动了,同时大量容器启动占用了服务器性能,导致nacos无法正常启动,进一步导致其他容器无法启动。
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
试试这种,通过健康检查来判断
version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: mysql
environment:
- MYSQL_ROOT_PASSWORD=your_password
- MYSQL_DATABASE=nacos_config
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 5s
timeout: 5s
retries: 5
start_period: 30s
nacos:
image: nacos/nacos-server:latest
container_name: nacos
environment:
- MODE=standalone
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=mysql
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=your_password
- MYSQL_SERVICE_DB_NAME=nacos_config
depends_on:
mysql:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8848/nacos/v1/console/health/readiness"]
interval: 5s
timeout: 5s
retries: 5
start_period: 30s
your-app:
image: your-app-image
container_name: your-app
depends_on:
nacos:
condition: service_healthy
# 其他应用的配置...
another-app:
image: another-app-image
container_name: another-app
depends_on:
nacos:
condition: service_healthy
# 其他应用的配置...
扫一扫访问 Blade技术社区 移动端