mirror of
https://github.com/jeecgboot/JeecgBoot.git
synced 2026-09-10 22:18:47 +00:00
Docker启动优化:去掉CMD盲等sleep,改由healthcheck+depends_on保证依赖就绪
This commit is contained in:
parent
ad40bfa126
commit
5f38d4ad2a
@ -19,6 +19,12 @@ services:
|
||||
--default-authentication-plugin=caching_sha2_password
|
||||
ports:
|
||||
- 13306:3306
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "mysqladmin ping -h127.0.0.1 -uroot -proot --silent"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 60s
|
||||
networks:
|
||||
- jeecg-boot
|
||||
|
||||
@ -29,6 +35,11 @@ services:
|
||||
restart: always
|
||||
hostname: jeecg-boot-redis
|
||||
container_name: jeecg-boot-redis
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
networks:
|
||||
- jeecg-boot
|
||||
|
||||
@ -39,6 +50,10 @@ services:
|
||||
- 9080:9080
|
||||
container_name: jeecg-boot-xxljob
|
||||
hostname: jeecg-boot-xxljob
|
||||
# xxl_job调度表存在mysql中(db/tables_xxl_job.sql),需等mysql就绪
|
||||
depends_on:
|
||||
jeecg-boot-mysql:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- jeecg-boot
|
||||
|
||||
@ -50,15 +65,26 @@ services:
|
||||
- 8848:8848
|
||||
- 18080:18080
|
||||
container_name: jeecg-boot-nacos
|
||||
# nacos配置库存在外部mysql中(db/tables_nacos.sql),需等mysql就绪
|
||||
depends_on:
|
||||
- jeecg-boot-mysql
|
||||
jeecg-boot-mysql:
|
||||
condition: service_healthy
|
||||
hostname: jeecg-boot-nacos
|
||||
# 镜像内无curl,用sh内建/dev/tcp探测8848端口
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "(echo > /dev/tcp/127.0.0.1/8848) 2>/dev/null"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 60s
|
||||
networks:
|
||||
- jeecg-boot
|
||||
|
||||
jeecg-boot-system:
|
||||
depends_on:
|
||||
- jeecg-boot-nacos
|
||||
# 等nacos就绪后再启动应用(应用Dockerfile已去掉sleep,直接启动)
|
||||
jeecg-boot-nacos:
|
||||
condition: service_healthy
|
||||
build:
|
||||
context: ./jeecg-boot/jeecg-server-cloud/jeecg-system-cloud-start
|
||||
container_name: jeecg-system-cloud-start
|
||||
@ -72,7 +98,9 @@ services:
|
||||
|
||||
jeecg-boot-demo:
|
||||
depends_on:
|
||||
- jeecg-boot-nacos
|
||||
# 等nacos就绪后再启动应用(应用Dockerfile已去掉sleep,直接启动)
|
||||
jeecg-boot-nacos:
|
||||
condition: service_healthy
|
||||
build:
|
||||
context: ./jeecg-boot/jeecg-server-cloud/jeecg-demo-cloud-start
|
||||
container_name: jeecg-demo-start
|
||||
|
||||
@ -19,6 +19,12 @@ services:
|
||||
--default-authentication-plugin=caching_sha2_password
|
||||
ports:
|
||||
- 13306:3306
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "mysqladmin ping -h127.0.0.1 -uroot -proot --silent"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 60s
|
||||
networks:
|
||||
- jeecg-boot
|
||||
|
||||
@ -29,6 +35,11 @@ services:
|
||||
restart: always
|
||||
hostname: jeecg-boot-redis
|
||||
container_name: jeecg-boot-redis
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
networks:
|
||||
- jeecg-boot
|
||||
|
||||
@ -37,8 +48,11 @@ services:
|
||||
context: ./jeecg-boot/jeecg-module-system/jeecg-system-start
|
||||
restart: on-failure
|
||||
depends_on:
|
||||
- jeecg-boot-mysql
|
||||
- jeecg-boot-redis
|
||||
# 等依赖服务healthcheck通过后再启动应用(应用Dockerfile已去掉sleep,直接启动)
|
||||
jeecg-boot-mysql:
|
||||
condition: service_healthy
|
||||
jeecg-boot-redis:
|
||||
condition: service_healthy
|
||||
container_name: jeecg-boot-system
|
||||
image: jeecg-boot-system
|
||||
hostname: jeecg-boot-system
|
||||
|
||||
@ -19,6 +19,12 @@ services:
|
||||
--default-authentication-plugin=caching_sha2_password
|
||||
ports:
|
||||
- 13306:3306
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "mysqladmin ping -h127.0.0.1 -uroot -proot --silent"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 60s
|
||||
networks:
|
||||
- jeecg-boot
|
||||
|
||||
@ -29,6 +35,11 @@ services:
|
||||
restart: always
|
||||
hostname: jeecg-boot-redis
|
||||
container_name: jeecg-boot-redis
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
networks:
|
||||
- jeecg-boot
|
||||
|
||||
@ -65,8 +76,11 @@ services:
|
||||
restart: on-failure
|
||||
mac_address: 02:42:ac:11:00:02
|
||||
depends_on:
|
||||
- jeecg-boot-mysql
|
||||
- jeecg-boot-redis
|
||||
# 等依赖服务healthcheck通过后再启动应用(应用Dockerfile已去掉sleep,直接启动)
|
||||
jeecg-boot-mysql:
|
||||
condition: service_healthy
|
||||
jeecg-boot-redis:
|
||||
condition: service_healthy
|
||||
container_name: jeecg-boot-system
|
||||
image: jeecg-boot-system
|
||||
hostname: jeecg-boot-system
|
||||
|
||||
@ -25,5 +25,5 @@ ADD ./target/jeecg-system-start-3.9.5.jar ./
|
||||
|
||||
RUN mkdir -p /jeecg-boot/config
|
||||
|
||||
# 【PR#9345】编码已通过JAVA_TOOL_OPTIONS设置,CMD改用&&和exec
|
||||
CMD sleep 60 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-system-start-3.9.5.jar
|
||||
# 【PR#9345】编码已通过JAVA_TOOL_OPTIONS设置;去掉sleep 60,容器启动后立即拉起应用(依赖库就绪由docker-compose的healthcheck+depends_on: service_healthy保证)
|
||||
CMD exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-system-start-3.9.5.jar
|
||||
@ -18,6 +18,12 @@ services:
|
||||
--default-authentication-plugin=caching_sha2_password
|
||||
ports:
|
||||
- 13306:3306
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "mysqladmin ping -h127.0.0.1 -uroot -proot --silent"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 60s
|
||||
networks:
|
||||
- jeecg-boot
|
||||
|
||||
@ -28,6 +34,11 @@ services:
|
||||
restart: always
|
||||
container_name: jeecg-boot-redis
|
||||
hostname: jeecg-boot-redis
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
networks:
|
||||
- jeecg-boot
|
||||
|
||||
@ -66,12 +77,25 @@ services:
|
||||
- 18080:18080
|
||||
container_name: jeecg-boot-nacos
|
||||
hostname: jeecg-boot-nacos
|
||||
# nacos配置库存在外部mysql中(db/tables_nacos.sql),需等mysql就绪
|
||||
depends_on:
|
||||
jeecg-boot-mysql:
|
||||
condition: service_healthy
|
||||
# 镜像内无curl,用sh内建/dev/tcp探测8848端口
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "(echo > /dev/tcp/127.0.0.1/8848) 2>/dev/null"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 60s
|
||||
networks:
|
||||
- jeecg-boot
|
||||
|
||||
jeecg-boot-system:
|
||||
depends_on:
|
||||
- jeecg-boot-nacos
|
||||
# 等nacos就绪后再启动应用(应用Dockerfile已去掉sleep,直接启动)
|
||||
jeecg-boot-nacos:
|
||||
condition: service_healthy
|
||||
build:
|
||||
context: ./jeecg-system-cloud-start
|
||||
container_name: jeecg-system-start
|
||||
@ -84,7 +108,9 @@ services:
|
||||
|
||||
jeecg-boot-demo:
|
||||
depends_on:
|
||||
- jeecg-boot-nacos
|
||||
# 等nacos就绪后再启动应用(应用Dockerfile已去掉sleep,直接启动)
|
||||
jeecg-boot-nacos:
|
||||
condition: service_healthy
|
||||
build:
|
||||
context: ./jeecg-demo-cloud-start
|
||||
container_name: jeecg-demo-start
|
||||
|
||||
@ -22,4 +22,5 @@ EXPOSE 9999
|
||||
|
||||
ADD ./target/jeecg-cloud-gateway-3.9.5.jar ./
|
||||
|
||||
CMD sleep 100 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-gateway-3.9.5.jar
|
||||
# 去掉sleep 100,直接启动(docker-compose下由command覆盖为轮询nacos等system注册后再启动)
|
||||
CMD exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-gateway-3.9.5.jar
|
||||
@ -22,4 +22,5 @@ EXPOSE 8848 18080
|
||||
|
||||
ADD ./target/jeecg-cloud-nacos-3.9.5.jar ./
|
||||
|
||||
CMD sleep 30 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-nacos-3.9.5.jar
|
||||
# 去掉sleep 30,容器启动后立即拉起应用(MySQL就绪由docker-compose的healthcheck+depends_on: service_healthy保证)
|
||||
CMD exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-nacos-3.9.5.jar
|
||||
@ -22,4 +22,5 @@ EXPOSE 7002
|
||||
|
||||
ADD ./target/jeecg-demo-cloud-start-3.9.5.jar ./
|
||||
|
||||
CMD sleep 60 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-demo-cloud-start-3.9.5.jar
|
||||
# 去掉sleep 60,容器启动后立即拉起应用(Nacos就绪由docker-compose的healthcheck+depends_on: service_healthy保证)
|
||||
CMD exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-demo-cloud-start-3.9.5.jar
|
||||
|
||||
@ -22,4 +22,5 @@ EXPOSE 7001
|
||||
|
||||
ADD ./target/jeecg-system-cloud-start-3.9.5.jar ./
|
||||
|
||||
CMD sleep 60 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-system-cloud-start-3.9.5.jar
|
||||
# 去掉sleep 60,容器启动后立即拉起应用(Nacos就绪由docker-compose的healthcheck+depends_on: service_healthy保证)
|
||||
CMD exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-system-cloud-start-3.9.5.jar
|
||||
@ -22,4 +22,5 @@ EXPOSE 8848
|
||||
|
||||
ADD ./target/jeecg-cloud-sentinel-3.9.5.jar ./
|
||||
|
||||
CMD sleep 5 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-sentinel-3.9.5.jar
|
||||
# 去掉sleep 5,直接启动(依赖就绪由docker-compose的healthcheck+depends_on保证)
|
||||
CMD exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-sentinel-3.9.5.jar
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user