mirror of
https://github.com/meysamhadeli/booking-microservices.git
synced 2026-04-26 15:51:08 +08:00
feat: complete docker compose services for monolith
This commit is contained in:
parent
56f3a1cc94
commit
566f9bd8b7
@ -1,6 +1,6 @@
|
|||||||
name: booking-monolith
|
name: booking-monolith
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
#######################################################
|
#######################################################
|
||||||
# EventStoreDB
|
# EventStoreDB
|
||||||
@ -142,6 +142,193 @@
|
|||||||
networks:
|
networks:
|
||||||
- booking
|
- booking
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# rabbitmq
|
||||||
|
#######################################################
|
||||||
|
rabbitmq:
|
||||||
|
image: rabbitmq:management
|
||||||
|
container_name: rabbitmq
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "5672:5672"
|
||||||
|
- "15672:15672"
|
||||||
|
# volumes:
|
||||||
|
# - rabbitmq:/var/lib/rabbitmq
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# Redis
|
||||||
|
#######################################################
|
||||||
|
redis:
|
||||||
|
image: redis
|
||||||
|
container_name: redis
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- 6379:6379
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# node-exporter
|
||||||
|
# https://prometheus.io/docs/guides/node-exporter/
|
||||||
|
# https://grafana.com/docs/grafana-cloud/send-data/metrics/metrics-prometheus/prometheus-config-examples/docker-compose-linux/
|
||||||
|
#######################################################
|
||||||
|
node-exporter:
|
||||||
|
image: prom/node-exporter:latest
|
||||||
|
container_name: node-exporter
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- /proc:/host/proc:ro
|
||||||
|
- /sys:/host/sys:ro
|
||||||
|
- /:/rootfs:ro
|
||||||
|
command:
|
||||||
|
- '--path.procfs=/host/proc'
|
||||||
|
- '--path.rootfs=/rootfs'
|
||||||
|
- '--path.sysfs=/host/sys'
|
||||||
|
ports:
|
||||||
|
- "9101:9100"
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# grafana
|
||||||
|
# https://grafana.com/docs/grafana/latest/administration/provisioning/
|
||||||
|
# https://grafana.com/docs/grafana/latest/setup-grafana/installation/docker/
|
||||||
|
# https://grafana.com/docs/grafana/latest/setup-grafana/configure-docker/
|
||||||
|
# https://github.com/grafana/intro-to-mltp/blob/main/grafana/provisioning/datasources/datasources.yaml
|
||||||
|
#######################################################
|
||||||
|
grafana:
|
||||||
|
image: grafana/grafana:latest
|
||||||
|
container_name: grafana
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource
|
||||||
|
- GF_SECURITY_ADMIN_USER=admin
|
||||||
|
- GF_SECURITY_ADMIN_PASSWORD=admin
|
||||||
|
- GF_FEATURE_TOGGLES_ENABLE=traceqlEditor
|
||||||
|
# - GF_AUTH_ANONYMOUS_ENABLED=true
|
||||||
|
# - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
|
||||||
|
# - GF_AUTH_DISABLE_LOGIN_FORM=true
|
||||||
|
depends_on:
|
||||||
|
- prometheus
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
volumes:
|
||||||
|
- ./../configs/grafana/provisioning:/etc/grafana/provisioning
|
||||||
|
- ./../configs/grafana/dashboards:/var/lib/grafana/dashboards
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# tempo
|
||||||
|
# https://github.com/grafana/tempo/blob/main/example/docker-compose/otel-collector/docker-compose.yaml
|
||||||
|
# https://github.com/grafana/tempo/blob/main/example/docker-compose/shared
|
||||||
|
# https://github.com/grafana/tempo/blob/main/example/docker-compose/local
|
||||||
|
# https://github.com/grafana/tempo/tree/main/example/docker-compose
|
||||||
|
#######################################################
|
||||||
|
tempo:
|
||||||
|
image: grafana/tempo:latest
|
||||||
|
container_name: tempo
|
||||||
|
restart: unless-stopped
|
||||||
|
command: [ "-config.file=/etc/tempo.yaml" ]
|
||||||
|
volumes:
|
||||||
|
- ./../configs/tempo.yaml:/etc/tempo.yaml
|
||||||
|
ports:
|
||||||
|
- "3200" # tempo
|
||||||
|
- "24317:4317" # otlp grpc
|
||||||
|
- "24318:4318" # otlp http
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# loki
|
||||||
|
# https://grafana.com/docs/opentelemetry/collector/send-logs-to-loki/
|
||||||
|
# https://github.com/grafana/loki/blob/main/production/docker-compose.yaml
|
||||||
|
# https://github.com/grafana/loki/blob/main/examples/getting-started/docker-compose.yaml
|
||||||
|
#######################################################
|
||||||
|
loki:
|
||||||
|
image: grafana/loki:latest
|
||||||
|
hostname: loki
|
||||||
|
container_name: loki
|
||||||
|
ports:
|
||||||
|
- "3100:3100"
|
||||||
|
command: -config.file=/etc/loki/local-config.yaml
|
||||||
|
volumes:
|
||||||
|
- ./../configs/loki-config.yaml:/etc/loki/local-config.yaml
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# elasticsearch
|
||||||
|
# https://www.elastic.co/guide/en/elasticsearch/reference/7.17/docker.html#docker-compose-file
|
||||||
|
#######################################################
|
||||||
|
elasticsearch:
|
||||||
|
container_name: elasticsearch
|
||||||
|
restart: unless-stopped
|
||||||
|
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
|
||||||
|
environment:
|
||||||
|
- discovery.type=single-node
|
||||||
|
- cluster.name=docker-cluster
|
||||||
|
- node.name=docker-node
|
||||||
|
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
||||||
|
- xpack.security.enabled=false
|
||||||
|
- xpack.security.http.ssl.enabled=false
|
||||||
|
- xpack.security.transport.ssl.enabled=false
|
||||||
|
- network.host=0.0.0.0
|
||||||
|
- http.port=9200
|
||||||
|
- transport.host=localhost
|
||||||
|
- bootstrap.memory_lock=true
|
||||||
|
- cluster.routing.allocation.disk.threshold_enabled=false
|
||||||
|
ulimits:
|
||||||
|
memlock:
|
||||||
|
soft: -1
|
||||||
|
hard: -1
|
||||||
|
volumes:
|
||||||
|
- elastic-data:/usr/share/elasticsearch/data
|
||||||
|
ports:
|
||||||
|
- ${ELASTIC_HOST_PORT:-9200}:${ELASTIC_PORT:-9200}
|
||||||
|
- 9300:9300
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# kibana
|
||||||
|
# https://www.elastic.co/guide/en/kibana/current/docker.html
|
||||||
|
#######################################################
|
||||||
|
kibana:
|
||||||
|
image: docker.elastic.co/kibana/kibana:8.17.0
|
||||||
|
container_name: kibana
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
|
||||||
|
ports:
|
||||||
|
- ${KIBANA_HOST_PORT:-5601}:${KIBANA_PORT:-5601}
|
||||||
|
depends_on:
|
||||||
|
- elasticsearch
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
|
||||||
|
#######################################################
|
||||||
|
# cadvisor
|
||||||
|
#######################################################
|
||||||
|
cadvisor:
|
||||||
|
image: gcr.io/cadvisor/cadvisor:latest
|
||||||
|
container_name: cadvisor
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
volumes:
|
||||||
|
- /:/rootfs:ro
|
||||||
|
- /var/run:/var/run:ro
|
||||||
|
- /sys:/sys:ro
|
||||||
|
- /var/lib/docker/:/var/lib/docker:ro
|
||||||
|
- /dev/disk/:/dev/disk:ro
|
||||||
|
devices:
|
||||||
|
- /dev/kmsg
|
||||||
|
networks:
|
||||||
|
- booking
|
||||||
|
|
||||||
#######################################################
|
#######################################################
|
||||||
# booking-monolith
|
# booking-monolith
|
||||||
#######################################################
|
#######################################################
|
||||||
@ -154,25 +341,25 @@
|
|||||||
dockerfile: 1-monolith-architecture-style/src/BookingMonolith/dev.Dockerfile
|
dockerfile: 1-monolith-architecture-style/src/BookingMonolith/dev.Dockerfile
|
||||||
container_name: bookingmonolith
|
container_name: bookingmonolith
|
||||||
ports:
|
ports:
|
||||||
- 4000:80
|
- 4001:80
|
||||||
- 4001:443
|
- 4000:443
|
||||||
volumes:
|
volumes:
|
||||||
- ~/.aspnet/https:/https:ro
|
- ~/.aspnet/https:/https:ro
|
||||||
environment:
|
environment:
|
||||||
- ASPNETCORE_ENVIRONMENT=docker
|
- ASPNETCORE_ENVIRONMENT=docker
|
||||||
- ASPNETCORE_URLS=https://+;http://+
|
- ASPNETCORE_URLS=https://+;http://+
|
||||||
- ASPNETCORE_HTTPS_PORT=4001
|
- ASPNETCORE_HTTPS_PORT=4000
|
||||||
- ASPNETCORE_HTTP_PORT=4000
|
- ASPNETCORE_HTTP_PORT=4001
|
||||||
- ASPNETCORE_Kestrel__Certificates__Default__Password=password
|
- ASPNETCORE_Kestrel__Certificates__Default__Password=password
|
||||||
- ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
|
- ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
|
||||||
networks:
|
networks:
|
||||||
- booking
|
- booking
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
booking:
|
booking:
|
||||||
name: booking
|
name: booking
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
elastic-data:
|
elastic-data:
|
||||||
postgres-data:
|
postgres-data:
|
||||||
Loading…
x
Reference in New Issue
Block a user