Files
java-template/client/docker-compose.yml
T
2025-09-06 15:29:18 +08:00

141 lines
3.7 KiB
YAML

version: '3.8'
services:
ljwx-mysql:
image: ${REGISTRY}/ljwx-mysql:${LJWX_VERSION}
container_name: ljwx-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
TZ: ${TZ}
ports:
- "${MYSQL_PORT}:3306"
volumes:
- ./data/mysql:/var/lib/mysql
- ./config/mysql/my.cnf:/etc/mysql/conf.d/custom.cnf
- ./logs/mysql:/var/log/mysql
networks:
- ljwx-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD}"]
timeout: 20s
retries: 10
ljwx-redis:
image: ${REGISTRY}/ljwx-redis:${LJWX_VERSION}
container_name: ljwx-redis
restart: unless-stopped
environment:
TZ: ${TZ}
ports:
- "${REDIS_PORT}:6379"
volumes:
- ./data/redis:/data
- ./config/redis/redis.conf:/usr/local/etc/redis/redis.conf
networks:
- ljwx-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
timeout: 5s
retries: 5
ljwx-boot:
image: ${REGISTRY}/ljwx-boot:${LJWX_VERSION}
container_name: ljwx-boot
restart: unless-stopped
environment:
TZ: ${TZ}
SPRING_PROFILES_ACTIVE: prod
SPRING_DATASOURCE_URL: jdbc:mysql://ljwx-mysql:3306/${MYSQL_DATABASE}?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true
SPRING_DATASOURCE_USERNAME: ${MYSQL_USER}
SPRING_DATASOURCE_PASSWORD: ${MYSQL_PASSWORD}
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.cj.jdbc.Driver
SPRING_REDIS_HOST: ljwx-redis
SPRING_REDIS_PORT: 6379
SPRING_REDIS_DATABASE: 0
SPRING_DATA_REDIS_HOST: ljwx-redis
SPRING_DATA_REDIS_PORT: 6379
REDIS_HOST: ljwx-redis
REDIS_PORT: 6379
ports:
- "${LJWX_BOOT_PORT}:9998"
volumes:
- ./logs/ljwx-boot:/app/logs
depends_on:
- ljwx-mysql
- ljwx-redis
networks:
- ljwx-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9998/actuator/health"]
timeout: 30s
retries: 10
interval: 30s
start_period: 60s
ljwx-bigscreen:
image: ${REGISTRY}/ljwx-bigscreen:${LJWX_VERSION}
container_name: ljwx-bigscreen
restart: unless-stopped
environment:
TZ: ${TZ}
MYSQL_HOST: ljwx-mysql
MYSQL_PORT: 3306
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
REDIS_HOST: ljwx-redis
REDIS_PORT: 6379
BOOT_API_URL: http://ljwx-boot:9998
ports:
- "${LJWX_BIGSCREEN_PORT}:8001"
volumes:
- ./logs/ljwx-bigscreen:/app/logs
depends_on:
- ljwx-mysql
- ljwx-redis
- ljwx-boot
networks:
- ljwx-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8001/health"]
timeout: 10s
retries: 5
ljwx-admin:
image: ${REGISTRY}/ljwx-admin:${LJWX_VERSION}
container_name: ljwx-admin
restart: unless-stopped
environment:
TZ: ${TZ}
BACKEND_URL: http://ljwx-boot:9998
BIGSCREEN_URL: http://ljwx-bigscreen:8001
ports:
- "${LJWX_ADMIN_PORT}:80"
volumes:
- ./logs/nginx:/var/log/nginx
depends_on:
- ljwx-boot
- ljwx-bigscreen
networks:
- ljwx-network
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:80/health"]
timeout: 10s
retries: 3
networks:
ljwx-network:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.20.0.0/16
volumes:
mysql_data:
redis_data: