Files
EasyCard/deploy/docker-compose.yml
陈子默 425d8dd455 chore: 补充部署编排配置
- 增加 Docker Compose、共享服务初始化脚本与 Nginx 配置

- 补充部署环境应用配置与数据库初始化脚本
2026-03-20 12:45:00 +08:00

81 lines
2.8 KiB
YAML

services:
mysql-init:
image: ${MYSQL_IMAGE:-mysql:8.0.36}
restart: "no"
environment:
TZ: ${TZ:-Asia/Shanghai}
MYSQL_HOST: ${MYSQL_SHARED_HOST:-mysql-shared}
MYSQL_PORT: ${MYSQL_SHARED_PORT:-3306}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root}
MYSQL_INIT_SQL_FILE: /tmp/scripts/sql/easycard_init.sql
volumes:
- ./scripts/init-shared-mysql.sh:/tmp/init-shared-mysql.sh:ro
- ./scripts/sql/easycard_init.sql:/tmp/scripts/sql/easycard_init.sql:ro
entrypoint: ["/bin/sh", "/tmp/init-shared-mysql.sh"]
networks:
- middleware-net
minio-init:
image: ${MINIO_MC_IMAGE:-quay.io/minio/aistor/mc:RELEASE.2025-08-21T03-14-05Z}
restart: "no"
environment:
MINIO_ALIAS: ${MINIO_ALIAS:-easycard}
MINIO_ENDPOINT: ${MINIO_SHARED_ENDPOINT:-http://minio-shared:9000}
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-easyflowadmin}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-easyflowadmin123}
MINIO_BUCKET: ${MINIO_BUCKET:-easycard}
MINIO_PUBLIC_BUCKET: ${MINIO_PUBLIC_BUCKET:-true}
volumes:
- ./scripts/init-shared-minio.sh:/tmp/init-shared-minio.sh:ro
entrypoint: ["/bin/sh", "/tmp/init-shared-minio.sh"]
networks:
- middleware-net
backend:
image: easycard-backend:0.3
container_name: easycard-backend
restart: unless-stopped
depends_on:
mysql-init:
condition: service_completed_successfully
minio-init:
condition: service_completed_successfully
environment:
TZ: ${TZ:-Asia/Shanghai}
SPRING_PROFILES_ACTIVE: docker
SPRING_CONFIG_ADDITIONAL_LOCATION: file:/app/
SERVER_PORT: 8112
DB_HOST: ${MYSQL_SHARED_HOST:-mysql-shared}
DB_PORT: ${MYSQL_SHARED_PORT:-3306}
DB_NAME: ${DB_NAME:-easycard}
DB_USERNAME: ${DB_USERNAME:-root}
DB_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root}
REDIS_HOST: ${REDIS_SHARED_HOST:-redis-shared}
REDIS_PORT: ${REDIS_SHARED_PORT:-6379}
REDIS_DATABASE: ${REDIS_DATABASE:-0}
REDIS_PASSWORD: ${REDIS_PASSWORD:-123456}
JWT_SECRET: ${JWT_SECRET:-change-me-in-docker}
MINIO_ENDPOINT: ${MINIO_SHARED_ENDPOINT:-http://minio-shared:9000}
MINIO_PUBLIC_ENDPOINT: ${MINIO_PUBLIC_ENDPOINT:-http://127.0.0.1:39000}
MINIO_ACCESS_KEY: ${MINIO_ROOT_USER:-easyflowadmin}
MINIO_SECRET_KEY: ${MINIO_ROOT_PASSWORD:-easyflowadmin123}
MINIO_BUCKET: ${MINIO_BUCKET:-easycard}
LOG_PATH: /app/logs
JAVA_OPTS: ${JAVA_OPTS:--Xms256m -Xmx512m}
ports:
- "8112:8112"
volumes:
- ./application.yml:/app/application.yml:ro
- ./data/backend/logs:/app/logs
networks:
- easycard_net
- middleware-net
networks:
easycard_net:
name: ${APP_NETWORK_NAME:-easycard-app-net}
driver: bridge
middleware-net:
external: true
name: ${MIDDLEWARE_NETWORK_NAME:-shared-middleware-net}