# 1. 基础环境变量(所有服务通用) x-java-env: &java-env TZ: Asia/Shanghai JASYPT_ENCRYPTOR_PASSWORD: alien_salt LOGGING_PATH: /app/logs # 2. 代理环境变量(在基础版之上增加代理) x-proxy-env: &proxy-env <<: *java-env # 3. 容器基础配置模板 x-java-common: &java-common restart: unless-stopped working_dir: /app networks: - app-network mem_limit: 800M mem_reservation: 256M services: gateway: <<: *java-common image: my-openjdk8-ffmpeg:v1 container_name: gateway-dev environment: <<: *java-env # 仅引用基础环境变量 volumes: - ./gateway:/app - ./logs/gateway:/app/logs ports: - "28000:8000" command: | sh -c 'exec java -Dspring.profiles.active=dev -Dfile.encoding=UTF-8 -Xms384m -Xmx384m -jar /app/alien-gateway-1.0.0.jar' store: <<: *java-common image: my-openjdk8-ffmpeg:v1 container_name: store-dev mem_limit: 700M # 对齐 test 用量比例,留 15~20% 余量 mem_reservation: 384M # 软性内存限制 environment: <<: *proxy-env # 引用带代理的环境变量 volumes: - ./store:/app - ./store/alien/aliPayCert:/usr/local/alien/aliPayCert - /cert/wechat/:/cert/wechat/ - ./logs/store:/app/logs ports: - "28004:30004" command: | sh -c 'exec java -Dspring.profiles.active=dev -Dfile.encoding=UTF-8 -Xms384m -Xmx384m -Dloader.path=/app/lib -jar /app/alien-store-1.0.0.jar' second: <<: *java-common image: my-openjdk8-ffmpeg:v1 container_name: second-dev environment: <<: *proxy-env volumes: - ./second:/app - ./second/alien/aliPayCert:/usr/local/alien/aliPayCert - ./logs/second:/app/logs ports: - "28005:30005" command: | sh -c 'exec java -Dspring.profiles.active=dev -Dfile.encoding=UTF-8 -Xms384m -Xmx384m -jar /app/alien-second-1.0.0.jar' store-platform: <<: *java-common image: my-openjdk8-ffmpeg:v1 container_name: store-platform-dev environment: <<: *proxy-env volumes: - ./store-platform:/app - ./store-platform/alien/aliPayCert:/usr/local/alien/aliPayCert - ./logs/store-platform:/app/logs ports: - "28006:30006" command: | sh -c 'exec java -Dspring.profiles.active=dev -Dfile.encoding=UTF-8 -Xms384m -Xmx384m -jar /app/alien-store-platform-1.0.0.jar' lawyer: <<: *java-common image: my-openjdk8-ffmpeg:v1 container_name: lawyer-dev environment: <<: *proxy-env volumes: - ./lawyer:/app - ./lawyer/alien/aliPayCert:/usr/local/alien/aliPayCert - ./logs/lawyer:/app/logs ports: - "28007:30007" command: | sh -c 'exec java -Dspring.profiles.active=dev -Dfile.encoding=UTF-8 -Xms384m -Xmx384m -jar /app/alien-lawyer-1.0.0.jar' job: <<: *java-common image: my-openjdk8-ffmpeg:v1 container_name: job-dev environment: <<: *proxy-env volumes: - ./job:/app - ./job/alien/aliPayCert:/usr/local/alien/aliPayCert - ./logs/job:/app/logs ports: - "28008:30008" - "28018:9999" command: | sh -c 'exec java -Dspring.profiles.active=dev -Dfile.encoding=UTF-8 -Xms384m -Xmx384m -jar /app/alien-job-1.0.0.jar' dining: <<: *java-common image: my-openjdk8-ffmpeg:v1 container_name: dining-dev environment: <<: *proxy-env # 引用带代理的环境变量 volumes: - ./dining:/app - ./dining/alien/aliPayCert:/usr/local/alien/aliPayCert - /cert/wechat/:/cert/wechat/ - ./logs/dining:/app/logs ports: - "28014:30014" command: | sh -c 'exec java -Dspring.profiles.active=dev -Dfile.encoding=UTF-8 -Xms384m -Xmx384m -Dloader.path=/app/lib -jar /app/alien-dining-1.0.0.jar' networks: app-network: external: true # 使用同一个外部网络 name: app-network