# ============================================================= # 步骤二:积分商城(single-shop-22)独立部署 # 客户:池州雷蕾商贸 czleilei240 # 包含服务:redis · single-admin-api · single-front-api # single-admin-web(Vue) · single-h5(uni-app) # ============================================================= name: jifenmall-czleilei240 x-common: &common restart: unless-stopped environment: TZ: ${TZ:-Asia/Shanghai} logging: driver: json-file options: max-size: "20m" max-file: "5" x-spring-common: &spring-common <<: *common environment: TZ: ${TZ:-Asia/Shanghai} MYSQL_HOST: ${RDS_HOST} MYSQL_DATABASE: ${RDS_DB} MYSQL_USERNAME: ${RDS_USER} MYSQL_PASSWORD: ${RDS_PASSWORD} REDIS_HOST: redis REDIS_PORT: 6379 REDIS_PASSWORD: ${REDIS_PASSWORD} SYNC_SOURCE_ID: ${SYNC_SOURCE_ID:-shop_15} SYNC_TARGET_MER_ID: ${SYNC_TARGET_MER_ID:-15} networks: single-net: driver: bridge volumes: single-redis-data: single-front-logs: single-admin-logs: services: # ---------- Redis ---------- redis: <<: *common image: redis:6.2-alpine container_name: single-redis command: ["redis-server", "--requirepass", "${REDIS_PASSWORD}", "--appendonly", "yes"] volumes: - single-redis-data:/data networks: [single-net] healthcheck: test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"] interval: 10s timeout: 3s retries: 5 # ---------- Front API(用户端 Spring Boot) ---------- single-front-api: <<: *spring-common build: context: ../../../single-shop-22/backend dockerfile: ../../deploy/docker/single-shop/front-api.Dockerfile image: jifenmall-czleilei240/front-api:latest container_name: single-front-api networks: [single-net] volumes: # 图片/PDF 目录 bind mount 到宿主机,与步骤一 H5 Nginx 共享同一路径 # /www/wwwroot/leilei.czchunfang.com/crmebimage/ → 通过 leilei.czchunfang.com 对外访问 - ${CRMEB_IMAGE_DIR}:/usr/local/crmeb/crmebimage - single-front-logs:/app/log - ../single-shop/application-docker.yml:/config/application-docker.yml:ro environment: TZ: ${TZ:-Asia/Shanghai} MYSQL_HOST: ${RDS_HOST} MYSQL_DATABASE: ${RDS_DB} MYSQL_USERNAME: ${RDS_USER} MYSQL_PASSWORD: ${RDS_PASSWORD} REDIS_HOST: redis REDIS_PORT: 6379 REDIS_PASSWORD: ${REDIS_PASSWORD} SYNC_SOURCE_ID: ${SYNC_SOURCE_ID:-shop_15} SYNC_TARGET_MER_ID: ${SYNC_TARGET_MER_ID:-15} SERVER_PORT: 30033 depends_on: redis: condition: service_healthy healthcheck: test: ["CMD-SHELL", "curl -sf http://localhost:30033/actuator/health || exit 1"] interval: 30s timeout: 10s retries: 5 start_period: 90s # ---------- Admin API(管理端 Spring Boot) ---------- single-admin-api: <<: *spring-common build: context: ../../../single-shop-22/backend dockerfile: ../../deploy/docker/single-shop/admin-api.Dockerfile image: jifenmall-czleilei240/admin-api:latest container_name: single-admin-api networks: [single-net] volumes: # 图片/PDF 目录 bind mount 到宿主机,与步骤一 H5 Nginx 共享同一路径 # /www/wwwroot/leilei.czchunfang.com/crmebimage/ → 通过 leilei.czchunfang.com 对外访问 - ${CRMEB_IMAGE_DIR}:/usr/local/crmeb/crmebimage - single-admin-logs:/app/log - ../single-shop/application-docker.yml:/config/application-docker.yml:ro environment: TZ: ${TZ:-Asia/Shanghai} MYSQL_HOST: ${RDS_HOST} MYSQL_DATABASE: ${RDS_DB} MYSQL_USERNAME: ${RDS_USER} MYSQL_PASSWORD: ${RDS_PASSWORD} REDIS_HOST: redis REDIS_PORT: 6379 REDIS_PASSWORD: ${REDIS_PASSWORD} SYNC_SOURCE_ID: ${SYNC_SOURCE_ID:-shop_15} SYNC_TARGET_MER_ID: ${SYNC_TARGET_MER_ID:-15} SERVER_PORT: 30032 depends_on: redis: condition: service_healthy healthcheck: test: ["CMD-SHELL", "curl -sf http://localhost:30032/actuator/health || exit 1"] interval: 30s timeout: 10s retries: 5 start_period: 90s # ---------- Admin Web(Vue 管理后台) ---------- single-admin-web: <<: *common build: context: ../../../single-shop-22/backend-adminend dockerfile: ../../deploy/docker/single-shop/admin-web.Dockerfile args: VUE_APP_BASE_API: ${SINGLE_ADMIN_API_PUBLIC_URL} image: jifenmall-czleilei240/admin-web:latest container_name: single-admin-web networks: [single-net] ports: - "${SINGLE_ADMIN_PORT:-18081}:80" depends_on: - single-admin-api # ---------- H5 前端(uni-app) ---------- single-h5: <<: *common build: context: ../../../single-shop-22/single_uniapp22miao dockerfile: ../../deploy/docker/single-shop/h5.Dockerfile args: H5_API_DOMAIN: ${SINGLE_FRONT_API_PUBLIC_URL} image: jifenmall-czleilei240/h5:latest container_name: single-h5 networks: [single-net] ports: - "${SINGLE_H5_PORT:-18082}:80" depends_on: - single-front-api