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}