version: '3.8' services: api-gateway: build: context: . dockerfile: cmd/api-gateway/Dockerfile depends_on: - task-service - rpg-service - feat-service networks: - rabbitmq_go_net environment: - RABBITMQ_URL - USER _SVC_URL - FEAT_SVC_URL - RPG_SVC_URL - TASK_SVC_URL - UPDATES_SVC_URL - AUTH_DB_URL - AUTH_DB_TOKEN - JWT_SECRET - API_GATEWAY_PORT ports: - 80:8080 task-service: build: context: . dockerfile: cmd/task-service/Dockerfile environment: - TASK_DB_URL - TASK_DB_TOKEN - TASK_SVC_PORT - RABBITMQ_URL networks: - rabbitmq_go_net depends_on: rabbitmq: condition: service_healthy rpg-service: build: context: . dockerfile: cmd/rpg-service/Dockerfile environment: - RABBITMQ_URL - RPG_DB_URL - RPG_DB_TOKEN - RPG_SVC_PORT depends_on: rabbitmq: condition: service_healthy networks: - rabbitmq_go_net feat-service: build: context: . dockerfile: cmd/feat-service/Dockerfile environment: - ACH_DB_URL - ACH_DB_TOKEN - FEAT_SVC_PORT - RABBITMQ_URL networks: - rabbitmq_go_net depends_on: rabbitmq: condition: service_healthy user-service: build: context: . dockerfile: cmd/user-service/Dockerfile environment: - USER_DB_URL - USER_DB_TOKEN - USER_SVC_PORT - RABBITMQ_URL networks: - rabbitmq_go_net depends_on: rabbitmq: condition: service_healthy rabbitmq: image: rabbitmq:3-management-alpine container_name: 'rabbitmq' ports: - 5672:5672 - 15672:15672 volumes: - ~/.docker-conf/rabbitmq/data/:/var/lib/rabbitmq/ - ~/.docker-conf/rabbitmq/log/:/var/log/rabbitmq networks: - rabbitmq_go_net healthcheck: test: ["CMD", "rabbitmqctl", "status"] interval: 10s timeout: 10s retries: 5 networks: rabbitmq_go_net: driver: bridge