2023-02-22 17:01:42 +03:30

305 lines
7.6 KiB
YAML

version: "3.3"
services:
######################################################
# Postgres
######################################################
postgres:
image: postgres:latest
container_name: postgres
restart: on-failure
ports:
- '5432:5432'
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
networks:
- booking
#######################################################
# Rabbitmq
#######################################################
rabbitmq:
container_name: rabbitmq
image: rabbitmq:3-management
restart: unless-stopped
ports:
- 5672:5672
- 15672:15672
networks:
- booking
#######################################################
# Jaeger
#######################################################
jaeger:
image: jaegertracing/all-in-one
container_name: jaeger
restart: unless-stopped
networks:
- booking
ports:
- 5775:5775/udp
- 5778:5778
- 6831:6831/udp
- 6832:6832/udp
- 9411:9411
- 14268:14268
- 16686:16686
#######################################################
# EventStoreDB
#######################################################
eventstore:
container_name: eventstore
image: eventstore/eventstore:21.2.0-buster-slim
restart: on-failure
environment:
- EVENTSTORE_CLUSTER_SIZE=1
- EVENTSTORE_RUN_PROJECTIONS=All
- EVENTSTORE_START_STANDARD_PROJECTIONS=true
- EVENTSTORE_EXT_TCP_PORT=1113
- EVENTSTORE_EXT_HTTP_PORT=2113
- EVENTSTORE_INSECURE=true
- EVENTSTORE_ENABLE_EXTERNAL_TCP=true
- EVENTSTORE_ENABLE_ATOM_PUB_OVER_HTTP=true
ports:
- '1113:1113'
- '2113:2113'
networks:
- booking
#######################################################
# Mongo
#######################################################
mongo:
image: mongo:5
container_name: mongo
restart: unless-stopped
# environment:
# - MONGO_INITDB_ROOT_USERNAME=root
# - MONGO_INITDB_ROOT_PASSWORD=secret
networks:
- booking
ports:
- 27017:27017
#######################################################
# Elastic Search
#######################################################
elasticsearch:
container_name: elasticsearch
image: elasticsearch:7.17.9
restart: unless-stopped
ports:
- 9200:9200
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
environment:
- xpack.monitoring.enabled=true
- xpack.watcher.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.type=single-node
networks:
- booking
#######################################################
# Kibana
#######################################################
kibana:
container_name: kibana
image: kibana:7.17.9
restart: unless-stopped
ports:
- 5601:5601
depends_on:
- elasticsearch
environment:
- ELASTICSEARCH_URL=http://localhost:9200
networks:
- booking
#######################################################
# Gateway
#######################################################
# gateway:
# image: gateway
# build:
# args:
# Version: "1"
# context: ../../
# dockerfile: src/ApiGateway/Dockerfile
# container_name: booking-gateway
# ports:
# - "5001:80"
# - "5000:443"
# depends_on:
# - postgres
# - rabbitmq
# - jaeger
# - elasticsearch
# - kibana
# volumes:
# - ~/.aspnet/https:/https:ro
# environment:
# - ASPNETCORE_ENVIRONMENT=docker
# - ASPNETCORE_URLS=https://+;http://+
# - ASPNETCORE_HTTPS_PORT=5001
# - ASPNETCORE_Kestrel__Certificates__Default__Password=password
# - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
# networks:
# - booking
#######################################################
# Flight
#######################################################
flight:
image: flight
build:
args:
Version: "1"
context: ../../
dockerfile: src/Services/Flight/Dockerfile
container_name: flight
ports:
- 5004:80
- 5003:443
depends_on:
- postgres
- rabbitmq
- jaeger
- elasticsearch
- kibana
- mongo
- identity
volumes:
- ~/.aspnet/https:/https:ro
environment:
- ASPNETCORE_ENVIRONMENT=docker
- ASPNETCORE_URLS=https://+;http://+
- ASPNETCORE_HTTPS_PORT=5003
- ASPNETCORE_HTTP_PORT=5004
- Jwt__Authority=http://host.docker.internal:6005
- Jwt__Audience=flight-api
- Jwt__RequireHttpsMetadata=false
- Jwt__MetadataAddress=http://host.docker.internal:6005/.well-known/openid-configuration
- ASPNETCORE_Kestrel__Certificates__Default__Password=password
- ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
networks:
- booking
#######################################################
# Identity
#######################################################
identity:
image: identity
build:
args:
Version: "1"
context: ../../
dockerfile: src/Services/Identity/Dockerfile
container_name: identity
ports:
- 6005:80
- 5005:443
depends_on:
- postgres
- rabbitmq
- jaeger
- elasticsearch
- kibana
volumes:
- ~/.aspnet/https:/https:ro
environment:
- ASPNETCORE_ENVIRONMENT=docker
- ASPNETCORE_URLS=https://+;http://+
- ASPNETCORE_HTTPS_PORT=5005
- ASPNETCORE_HTTP_PORT=6005
- ASPNETCORE_Kestrel__Certificates__Default__Password=password
- ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
networks:
- booking
#######################################################
# Passenger
#######################################################
# passenger:
# image: passenger
# build:
# args:
# Version: "1"
# context: ../../
# dockerfile: src/Services/Passenger/Dockerfile
# container_name: passenger
# ports:
# - 6012:80
# - 5012:443
# depends_on:
# - postgres
# - rabbitmq
# - jaeger
# - elasticsearch
# - kibana
# - mongo
# volumes:
# - ~/.aspnet/https:/https:ro
# environment:
# - ASPNETCORE_ENVIRONMENT=docker
# - ASPNETCORE_URLS=https://+;http://+
# - ASPNETCORE_HTTPS_PORT=5012
# - ASPNETCORE_Kestrel__Certificates__Default__Password=password
# - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
# networks:
# - booking
#######################################################
# Booking
#######################################################
# booking:
# image: booking
# build:
# args:
# Version: "1"
# context: ../../
# dockerfile: src/Services/Booking/Dockerfile
# container_name: booking
# ports:
# - 6010:80
# - 5010:443
# depends_on:
# - postgres
# - rabbitmq
# - jaeger
# - eventstore
# - elasticsearch
# - kibana
# - mongo
# volumes:
# - ~/.aspnet/https:/https:ro
# environment:
# - ASPNETCORE_ENVIRONMENT=docker
# - ASPNETCORE_URLS=https://+;http://+
# - ASPNETCORE_HTTPS_PORT=5010
# - ASPNETCORE_Kestrel__Certificates__Default__Password=password
# - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
# networks:
# - booking
networks:
booking:
volumes:
elasticsearch-data: