version: "3.9" services: api-gateway: image: git.pbiernat.dev/egommerce/api-gateway:latest # command: # - '--providers.consulcatalog.refreshinterval=5s' # FIXME ^^ only on config option: static/env/cli must be selected environment: - APP_NAME=api-gateway - APP_DOMAIN - API_REGISTRY_REFRESH_INTERVAL=5s volumes: - ./certs/api-gateway:/etc/traefik/certs - /var/run/docker.sock:/var/run/docker.sock networks: - api-gateway-network - api-registry-network - api-logger-network api-registry: image: git.pbiernat.dev/egommerce/api-registry:latest environment: - APP_NAME=api-registry - APP_DOMAIN - CONSUL_HTTP_TOKEN=VeryS3cr3tTok3N volumes: - registry_data:/consul/data - ./certs/api-registry:/etc/traefik/certs networks: - api-registry-network - api-logger-network api-eventbus: image: git.pbiernat.dev/egommerce/api-eventbus:latest environment: # - RABBITMQ_NODENAME=api-eventbus - RABBITMQ_ERLANG_COOKIE=rabbitmq - APP_NAME=api-eventbus - APP_DOMAIN volumes: - eventbus_data:/var/lib/rabbitmq - eventbus_logs:/var/log/rabbitmq networks: - api-gateway-network - api-eventbus-network - api-registry-network - api-logger-network api-cache: image: git.pbiernat.dev/egommerce/api-cache:latest environment: - APP_NAME=api-cache networks: - api-cache-network - api-logger-network api-logger: image: git.pbiernat.dev/egommerce/api-logger:latest environment: - APP_NAME=api-logger - APP_DOMAIN networks: - api-logger-network #api-prometheus: # image: prom/prometheus:latest # FIXME: create private image(prod/dev)... # user: root # environment: # - APP_NAME=api-prometheus # - APP_DOMAIN # volumes: # - ./etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml # - /var/run/docker.sock:/var/run/docker.sock # networks: # - api-prometheus-network #- api-grafana-network # - api-gateway-network # - api-registry-network # - api-eventbus-network # - api-cache-network # - api-logger-network # - basket-svc-network # - basket-worker-network # - catalog-svc-network # - catalog-worker-network # - identity-svc-network # - order-svc-network # - order-worker-network # - pricing-svc-network # - pricing-worker-network #api-grafana: # image: grafana/grafana-oss:latest # FIXME: create private image(prod/dev)... # environment: # - APP_NAME=api-grafana # - APP_DOMAIN # volumes: # - grafana-db:/var/lib/grafana # networks: # - api-grafana-network postgres-db: image: postgres:14.1-alpine environment: - APP_NAME=postgres-db - APP_DOMAIN - POSTGRES_USER=postgres - POSTGRES_PASSWORD volumes: - postgres_data:/var/lib/postgresql/data - ./db_migrations/init/:/docker-entrypoint-initdb.d/ networks: - postgres-db-network - api-logger-network mongo-db: image: mongo:5.0.14 environment: - APP_NAME=mongo-db - APP_DOMAIN - MONGO_INITDB_ROOT_USERNAME=mongodb - MONGO_INITDB_ROOT_PASSWORD volumes: - mongodb_data:/data/db networks: - mongodb-db-network - api-logger-network # API micro-services identity-svc: image: git.pbiernat.dev/egommerce/identity-svc:latest environment: - APP_NAME=identity-svc - APP_PATH_PREFIX=/identity - APP_DOMAIN - APP_KV_NAMESPACE - DATABASE_URL - MONGODB_URL - EVENTBUS_URL volumes: - ./db_migrations/identity-svc:/migrations networks: - identity-svc-network - api-gateway-network - api-registry-network - api-eventbus-network - api-logger-network - postgres-db-network - mongodb-db-network basket-svc: image: git.pbiernat.dev/egommerce/basket-svc:latest environment: - APP_NAME=basket-svc - APP_PATH_PREFIX=/basket - APP_DOMAIN - APP_KV_NAMESPACE - AUTH_HANDLER_URL - DATABASE_URL - MONGODB_URL - EVENTBUS_URL volumes: - ./db_migrations/basket-svc:/migrations networks: - basket-svc-network # - order-svc-network # - pricing-svc-network - api-gateway-network - api-registry-network - api-eventbus-network - api-logger-network - postgres-db-network - mongodb-db-network catalog-svc: image: git.pbiernat.dev/egommerce/catalog-svc:latest environment: - APP_NAME=catalog-svc - APP_PATH_PREFIX=/catalog - APP_DOMAIN - APP_KV_NAMESPACE - AUTH_HANDLER_URL - DATABASE_URL - MONGODB_URL - EVENTBUS_URL volumes: - ./db_migrations/catalog-svc:/migrations networks: - catalog-svc-network - api-gateway-network - api-registry-network - api-eventbus-network - api-logger-network - postgres-db-network - mongodb-db-network pricing-svc: image: git.pbiernat.dev/egommerce/pricing-svc:latest environment: - APP_NAME=pricing-svc - APP_PATH_PREFIX=/pricing - APP_DOMAIN - APP_KV_NAMESPACE - AUTH_HANDLER_URL - DATABASE_URL - MONGODB_URL - EVENTBUS_URL volumes: - ./db_migrations/pricing-svc:/migrations networks: - pricing-svc-network - api-gateway-network - api-registry-network - api-eventbus-network - api-logger-network - postgres-db-network - mongodb-db-network order-svc: image: git.pbiernat.dev/egommerce/order-svc:latest environment: - APP_NAME=order-svc - APP_PATH_PREFIX=/order - APP_DOMAIN - APP_KV_NAMESPACE - AUTH_HANDLER_URL - DATABASE_URL - MONGODB_URL - EVENTBUS_URL volumes: - ./db_migrations/order-svc:/migrations networks: - order-svc-network - api-gateway-network - api-registry-network - api-eventbus-network - api-logger-network - postgres-db-network - mongodb-db-network # Workers (Eventbus) basket-worker: image: git.pbiernat.dev/egommerce/basket-worker:latest environment: - APP_NAME=basket-worker - APP_KV_NAMESPACE - DATABASE_URL - MONGODB_URL - EVENTBUS_URL networks: - basket-worker-network - pricing-svc-network - api-gateway-network - api-registry-network - api-eventbus-network - api-logger-network - postgres-db-network - mongodb-db-network catalog-worker: image: git.pbiernat.dev/egommerce/catalog-worker:latest environment: - APP_NAME=catalog-worker - DATABASE_URL - MONGODB_URL - EVENTBUS_URL networks: - catalog-worker-network - api-gateway-network - api-registry-network - api-eventbus-network - api-logger-network - postgres-db-network - mongodb-db-network pricing-worker: image: git.pbiernat.dev/egommerce/pricing-worker:latest environment: - APP_NAME=pricing-worker - DATABASE_URL - MONGODB_URL - EVENTBUS_URL networks: - pricing-worker-network - api-gateway-network - api-registry-network - api-eventbus-network - api-logger-network - postgres-db-network - mongodb-db-network order-worker: image: git.pbiernat.dev/egommerce/order-worker:latest environment: - APP_NAME=order-worker - DATABASE_URL - MONGODB_URL - EVENTBUS_URL networks: - order-worker-network - basket-svc-network - api-gateway-network - api-registry-network - api-eventbus-network - api-logger-network - postgres-db-network - mongodb-db-network volumes: postgres_data: ~ mongodb_data: ~ registry_data: ~ eventbus_data: ~ eventbus_logs: ~ #grafana-db: ~ networks: api-gateway-network: driver: overlay #internal: true api-registry-network: driver: overlay #internal: true api-eventbus-network: driver: overlay #internal: true api-cache-network: driver: overlay #internal: true api-logger-network: driver: overlay #internal: true api-prometheus-network: driver: overlay #internal: true #api-grafana-network: # driver: overlay # internal: true postgres-db-network: driver: overlay #internal: true mongodb-db-network: driver: overlay #internal: true # api micro-services networks identity-svc-network: driver: overlay #internal: true basket-svc-network: driver: overlay #internal: true catalog-svc-network: driver: overlay #internal: true pricing-svc-network: driver: overlay #internal: true order-svc-network: driver: overlay #internal: true # Workers networks # identity-worker-network: # driver: overlay # internal: true basket-worker-network: driver: overlay #internal: true catalog-worker-network: driver: overlay #internal: true pricing-worker-network: driver: overlay #internal: true order-worker-network: driver: overlay #internal: true