diff --git a/docker-compose.aliyun.yml b/docker-compose.aliyun.yml new file mode 100644 index 0000000..fddf5eb --- /dev/null +++ b/docker-compose.aliyun.yml @@ -0,0 +1,129 @@ +networks: + microservice-network: + driver: bridge + +services: + consul: + image: consul:1.15 + container_name: ari-consul + restart: always + ports: + - "8500:8500" # Consul Web UI + - "8600:8600/udp" # DNS服务 + volumes: + - ./consul/config/${ENV_CONFIG_DIR}:/consul/config + command: "consul agent -server -bootstrap-expect=1 ${CONSUL_DEV_MODE} -config-dir=/consul/config -client=0.0.0.0" + networks: + - microservice-network + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8500/v1/status/leader"] + interval: 10s + timeout: 5s + retries: 3 + + traefik: + image: traefik:v2.11 + container_name: ari-traefik + command: + - --configFile=/etc/traefik/traefik.yml + ports: + - "80:80" + - "443:443" + - "8080:8080" # Traefik dashboard + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./traefik/config/${TRAEFIK_CONFIG_DIR}/traefik.yml:/etc/traefik/traefik.yml + - ./traefik/certs:/etc/traefik/certs + networks: + - microservice-network + + data-service: + image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/data-service:latest + container_name: ari-data-service + restart: always + expose: + - "8000" + networks: + - microservice-network + environment: + - SERVICE_NAME=data-service + + quant-service: + image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/quant-service:latest + container_name: ari-quant-service + restart: always + depends_on: + consul: + condition: service_healthy + expose: + - "8001" + networks: + - microservice-network + environment: + - SERVICE_NAME=quant-service + + emotion-service: + image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/emotion-service:latest + container_name: ari-emotion-service + restart: always + depends_on: + consul: + condition: service_healthy + expose: + - "8002" + networks: + - microservice-network + environment: + - SERVICE_NAME=emotion-service + + recommend-service: + image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/recommend-service:latest + container_name: ari-recommend-service + restart: always + depends_on: + consul: + condition: service_healthy + expose: + - "8003" + networks: + - microservice-network + environment: + - SERVICE_NAME=recommend-service + + user-service: + image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/user-service:latest + container_name: ari-user-service + restart: always + depends_on: + consul: + condition: service_healthy + expose: + - "8004" + networks: + - microservice-network + environment: + - SERVICE_NAME=user-service + + frontend: + image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/frontend:latest + pull_policy: always + container_name: ari-frontend + restart: always + depends_on: + - data-service + - quant-service + - emotion-service + - recommend-service + - user-service + expose: + - "80" + networks: + - microservice-network + environment: + - SERVICE_NAME=frontend + + whoami: + image: traefik/whoami + container_name: whoami + networks: + - microservice-network