mirror of
https://github.com/jeecgboot/JeecgBoot.git
synced 2026-09-14 07:59:50 +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
|
--default-authentication-plugin=caching_sha2_password
|
||||||
ports:
|
ports:
|
||||||
- 13306:3306
|
- 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:
|
networks:
|
||||||
- jeecg-boot
|
- jeecg-boot
|
||||||
|
|
||||||
@ -29,6 +35,11 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
hostname: jeecg-boot-redis
|
hostname: jeecg-boot-redis
|
||||||
container_name: jeecg-boot-redis
|
container_name: jeecg-boot-redis
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "redis-cli", "ping"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 12
|
||||||
networks:
|
networks:
|
||||||
- jeecg-boot
|
- jeecg-boot
|
||||||
|
|
||||||
@ -39,6 +50,10 @@ services:
|
|||||||
- 9080:9080
|
- 9080:9080
|
||||||
container_name: jeecg-boot-xxljob
|
container_name: jeecg-boot-xxljob
|
||||||
hostname: 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:
|
networks:
|
||||||
- jeecg-boot
|
- jeecg-boot
|
||||||
|
|
||||||
@ -50,15 +65,26 @@ services:
|
|||||||
- 8848:8848
|
- 8848:8848
|
||||||
- 18080:18080
|
- 18080:18080
|
||||||
container_name: jeecg-boot-nacos
|
container_name: jeecg-boot-nacos
|
||||||
|
# nacos配置库存在外部mysql中(db/tables_nacos.sql),需等mysql就绪
|
||||||
depends_on:
|
depends_on:
|
||||||
- jeecg-boot-mysql
|
jeecg-boot-mysql:
|
||||||
|
condition: service_healthy
|
||||||
hostname: jeecg-boot-nacos
|
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:
|
networks:
|
||||||
- jeecg-boot
|
- jeecg-boot
|
||||||
|
|
||||||
jeecg-boot-system:
|
jeecg-boot-system:
|
||||||
depends_on:
|
depends_on:
|
||||||
- jeecg-boot-nacos
|
# 等nacos就绪后再启动应用(应用Dockerfile已去掉sleep,直接启动)
|
||||||
|
jeecg-boot-nacos:
|
||||||
|
condition: service_healthy
|
||||||
build:
|
build:
|
||||||
context: ./jeecg-boot/jeecg-server-cloud/jeecg-system-cloud-start
|
context: ./jeecg-boot/jeecg-server-cloud/jeecg-system-cloud-start
|
||||||
container_name: jeecg-system-cloud-start
|
container_name: jeecg-system-cloud-start
|
||||||
@ -72,7 +98,9 @@ services:
|
|||||||
|
|
||||||
jeecg-boot-demo:
|
jeecg-boot-demo:
|
||||||
depends_on:
|
depends_on:
|
||||||
- jeecg-boot-nacos
|
# 等nacos就绪后再启动应用(应用Dockerfile已去掉sleep,直接启动)
|
||||||
|
jeecg-boot-nacos:
|
||||||
|
condition: service_healthy
|
||||||
build:
|
build:
|
||||||
context: ./jeecg-boot/jeecg-server-cloud/jeecg-demo-cloud-start
|
context: ./jeecg-boot/jeecg-server-cloud/jeecg-demo-cloud-start
|
||||||
container_name: jeecg-demo-start
|
container_name: jeecg-demo-start
|
||||||
|
|||||||
@ -19,6 +19,12 @@ services:
|
|||||||
--default-authentication-plugin=caching_sha2_password
|
--default-authentication-plugin=caching_sha2_password
|
||||||
ports:
|
ports:
|
||||||
- 13306:3306
|
- 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:
|
networks:
|
||||||
- jeecg-boot
|
- jeecg-boot
|
||||||
|
|
||||||
@ -29,6 +35,11 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
hostname: jeecg-boot-redis
|
hostname: jeecg-boot-redis
|
||||||
container_name: jeecg-boot-redis
|
container_name: jeecg-boot-redis
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "redis-cli", "ping"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 12
|
||||||
networks:
|
networks:
|
||||||
- jeecg-boot
|
- jeecg-boot
|
||||||
|
|
||||||
@ -37,8 +48,11 @@ services:
|
|||||||
context: ./jeecg-boot/jeecg-module-system/jeecg-system-start
|
context: ./jeecg-boot/jeecg-module-system/jeecg-system-start
|
||||||
restart: on-failure
|
restart: on-failure
|
||||||
depends_on:
|
depends_on:
|
||||||
- jeecg-boot-mysql
|
# 等依赖服务healthcheck通过后再启动应用(应用Dockerfile已去掉sleep,直接启动)
|
||||||
- jeecg-boot-redis
|
jeecg-boot-mysql:
|
||||||
|
condition: service_healthy
|
||||||
|
jeecg-boot-redis:
|
||||||
|
condition: service_healthy
|
||||||
container_name: jeecg-boot-system
|
container_name: jeecg-boot-system
|
||||||
image: jeecg-boot-system
|
image: jeecg-boot-system
|
||||||
hostname: jeecg-boot-system
|
hostname: jeecg-boot-system
|
||||||
|
|||||||
@ -19,6 +19,12 @@ services:
|
|||||||
--default-authentication-plugin=caching_sha2_password
|
--default-authentication-plugin=caching_sha2_password
|
||||||
ports:
|
ports:
|
||||||
- 13306:3306
|
- 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:
|
networks:
|
||||||
- jeecg-boot
|
- jeecg-boot
|
||||||
|
|
||||||
@ -29,6 +35,11 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
hostname: jeecg-boot-redis
|
hostname: jeecg-boot-redis
|
||||||
container_name: jeecg-boot-redis
|
container_name: jeecg-boot-redis
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "redis-cli", "ping"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 12
|
||||||
networks:
|
networks:
|
||||||
- jeecg-boot
|
- jeecg-boot
|
||||||
|
|
||||||
@ -65,8 +76,11 @@ services:
|
|||||||
restart: on-failure
|
restart: on-failure
|
||||||
mac_address: 02:42:ac:11:00:02
|
mac_address: 02:42:ac:11:00:02
|
||||||
depends_on:
|
depends_on:
|
||||||
- jeecg-boot-mysql
|
# 等依赖服务healthcheck通过后再启动应用(应用Dockerfile已去掉sleep,直接启动)
|
||||||
- jeecg-boot-redis
|
jeecg-boot-mysql:
|
||||||
|
condition: service_healthy
|
||||||
|
jeecg-boot-redis:
|
||||||
|
condition: service_healthy
|
||||||
container_name: jeecg-boot-system
|
container_name: jeecg-boot-system
|
||||||
image: jeecg-boot-system
|
image: jeecg-boot-system
|
||||||
hostname: 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
|
RUN mkdir -p /jeecg-boot/config
|
||||||
|
|
||||||
# 【PR#9345】编码已通过JAVA_TOOL_OPTIONS设置,CMD改用&&和exec
|
# 【PR#9345】编码已通过JAVA_TOOL_OPTIONS设置;去掉sleep 60,容器启动后立即拉起应用(依赖库就绪由docker-compose的healthcheck+depends_on: service_healthy保证)
|
||||||
CMD sleep 60 && exec java -Djava.security.egd=file:/dev/./urandom -jar jeecg-system-start-3.9.5.jar
|
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
|
--default-authentication-plugin=caching_sha2_password
|
||||||
ports:
|
ports:
|
||||||
- 13306:3306
|
- 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:
|
networks:
|
||||||
- jeecg-boot
|
- jeecg-boot
|
||||||
|
|
||||||
@ -28,6 +34,11 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
container_name: jeecg-boot-redis
|
container_name: jeecg-boot-redis
|
||||||
hostname: jeecg-boot-redis
|
hostname: jeecg-boot-redis
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "redis-cli", "ping"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 12
|
||||||
networks:
|
networks:
|
||||||
- jeecg-boot
|
- jeecg-boot
|
||||||
|
|
||||||
@ -66,12 +77,25 @@ services:
|
|||||||
- 18080:18080
|
- 18080:18080
|
||||||
container_name: jeecg-boot-nacos
|
container_name: jeecg-boot-nacos
|
||||||
hostname: 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:
|
networks:
|
||||||
- jeecg-boot
|
- jeecg-boot
|
||||||
|
|
||||||
jeecg-boot-system:
|
jeecg-boot-system:
|
||||||
depends_on:
|
depends_on:
|
||||||
- jeecg-boot-nacos
|
# 等nacos就绪后再启动应用(应用Dockerfile已去掉sleep,直接启动)
|
||||||
|
jeecg-boot-nacos:
|
||||||
|
condition: service_healthy
|
||||||
build:
|
build:
|
||||||
context: ./jeecg-system-cloud-start
|
context: ./jeecg-system-cloud-start
|
||||||
container_name: jeecg-system-start
|
container_name: jeecg-system-start
|
||||||
@ -84,7 +108,9 @@ services:
|
|||||||
|
|
||||||
jeecg-boot-demo:
|
jeecg-boot-demo:
|
||||||
depends_on:
|
depends_on:
|
||||||
- jeecg-boot-nacos
|
# 等nacos就绪后再启动应用(应用Dockerfile已去掉sleep,直接启动)
|
||||||
|
jeecg-boot-nacos:
|
||||||
|
condition: service_healthy
|
||||||
build:
|
build:
|
||||||
context: ./jeecg-demo-cloud-start
|
context: ./jeecg-demo-cloud-start
|
||||||
container_name: jeecg-demo-start
|
container_name: jeecg-demo-start
|
||||||
|
|||||||
@ -22,4 +22,5 @@ EXPOSE 9999
|
|||||||
|
|
||||||
ADD ./target/jeecg-cloud-gateway-3.9.5.jar ./
|
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 ./
|
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 ./
|
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 ./
|
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 ./
|
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