171 lines
4.3 KiB
YAML
171 lines
4.3 KiB
YAML
|
|
networks:
|
|
servicesNetwork:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
sqlite_data:
|
|
prom_data:
|
|
grafana_data:
|
|
nats_data:
|
|
nui_data:
|
|
|
|
services:
|
|
nats:
|
|
image: nats:latest
|
|
command: ["-js", "-m", "8222"]
|
|
ports:
|
|
- "4222:4222"
|
|
- "8222:8222"
|
|
volumes:
|
|
- ./app/core/nats/nats.conf:/etc/nats/nats.conf:ro
|
|
- nats_data:/data/jetstream
|
|
networks: [servicesNetwork]
|
|
restart: unless-stopped
|
|
|
|
nats-exporter:
|
|
image: natsio/prometheus-nats-exporter:latest
|
|
command:
|
|
- "-varz"
|
|
- "-connz"
|
|
- "-subz"
|
|
- "-routez"
|
|
- "-jsz=all"
|
|
- "http://nats:8222"
|
|
depends_on: [nats]
|
|
expose:
|
|
- "7777"
|
|
networks: [servicesNetwork]
|
|
restart: unless-stopped
|
|
|
|
prometheus:
|
|
image: prom/prometheus:latest
|
|
depends_on: [nats-exporter]
|
|
networks: [servicesNetwork]
|
|
volumes:
|
|
- ./monitor/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
|
- prom_data:/prometheus
|
|
command:
|
|
- "--config.file=/etc/prometheus/prometheus.yml"
|
|
- "--storage.tsdb.path=/prometheus"
|
|
- "--web.enable-lifecycle"
|
|
ports:
|
|
- "9090:9090"
|
|
restart: unless-stopped
|
|
|
|
grafana:
|
|
image: grafana/grafana:latest
|
|
depends_on: [prometheus]
|
|
networks: [servicesNetwork]
|
|
environment:
|
|
- GF_SECURITY_ADMIN_USER=admin
|
|
- GF_SECURITY_ADMIN_PASSWORD=admin
|
|
- GF_USERS_ALLOW_SIGN_UP=false
|
|
volumes:
|
|
- grafana_data:/var/lib/grafana
|
|
- ./monitor/grafana/provisioning/datasources:/etc/grafana/provisioning/datasources:ro
|
|
ports:
|
|
- "3000:3000"
|
|
restart: unless-stopped
|
|
|
|
nats-ui:
|
|
image: ghcr.io/nats-nui/nui:latest
|
|
ports:
|
|
- "127.0.0.1:31311:31311"
|
|
networks: [servicesNetwork]
|
|
volumes:
|
|
- nui_data:/db
|
|
restart: unless-stopped
|
|
|
|
db-service:
|
|
build:
|
|
context: .
|
|
dockerfile: app/services/database/Dockerfile
|
|
depends_on: [nats]
|
|
networks: [servicesNetwork]
|
|
env_file: [.env]
|
|
environment:
|
|
NATS_URL: "nats://nats:4222"
|
|
JS_STREAM: "ACCOUNT_SERVICES_DATABASE"
|
|
JS_TASKS_SUBJECT: "ACCOUNT.SERVICES.DATABASE.TASKS"
|
|
JS_PUBLISH_SUBJECT: "ACCOUNT.SERVICES.DATABASE.PUBLISH"
|
|
JS_DURABLE: "DB_WORKERS"
|
|
BATCH_SIZE: "5"
|
|
ACK_WAIT_SEC: "30"
|
|
MAX_DELIVER: "3"
|
|
SQLITE_PATH: "/app/data/queue.db"
|
|
TASK_TYPE: "db-task"
|
|
CONSUME_SLEEP_SEC: "0.5"
|
|
SERVICE_NAME: "db-service"
|
|
METRICS_PORT: "8000"
|
|
volumes:
|
|
- sqlite_data:/app/data
|
|
restart: unless-stopped
|
|
|
|
# mail-service:
|
|
# build:
|
|
# context: .
|
|
# dockerfile: app/services/mail/Dockerfile
|
|
# volumes:
|
|
# - sqlite_data:/app/data
|
|
# env_file: [.env]
|
|
# environment:
|
|
# REDIS_STREAM_PUBLISH: ACCOUNT:SERVICES:MAIL:PUBLISH
|
|
# REDIS_STREAM_TASKS: ACCOUNT:SERVICES:MAIL:TASKS
|
|
# CONSUME_BACKLOG: true
|
|
# depends_on: [redis]
|
|
# networks: [servicesNetwork]
|
|
# restart: unless-stopped
|
|
# logging:
|
|
# driver: "json-file"
|
|
# options:
|
|
# max-size: "10m"
|
|
# max-file: "3"
|
|
|
|
# queue-service:
|
|
# build:
|
|
# context: .
|
|
# dockerfile: app/services/queue/Dockerfile
|
|
# volumes:
|
|
# - sqlite_data:/app/data
|
|
# env_file: [.env]
|
|
# environment:
|
|
# REDIS_STREAM_PUBLISH: ACCOUNT:SERVICES:QUEUE:PUBLISH
|
|
# REDIS_STREAM_TASKS: ACCOUNT:SERVICES:QUEUE:TASKS
|
|
# depends_on: [redis]
|
|
# networks: [servicesNetwork]
|
|
# restart: unless-stopped
|
|
# logging:
|
|
# driver: "json-file"
|
|
# options:
|
|
# max-size: "10m"
|
|
# max-file: "3"
|
|
|
|
# tester:
|
|
# build:
|
|
# context: .
|
|
# dockerfile: app/services/test/Dockerfile
|
|
# volumes:
|
|
# - sqlite_data:/app/data
|
|
# env_file: [.env]
|
|
# environment:
|
|
# REDIS_STREAM_DATABASE_PUBLISH: ACCOUNT:SERVICES:DATABASE:PUBLISH
|
|
# REDIS_STREAM_DATABASE_TASKS: ACCOUNT:SERVICES:DATABASE:TASKS
|
|
# REDIS_STREAM_MAIL_PUBLISH: ACCOUNT:SERVICES:MAIL:PUBLISH
|
|
# REDIS_STREAM_MAIL_TASKS: ACCOUNT:SERVICES:MAIL:TASKS
|
|
# REDIS_STREAM_QUEUE_PUBLISH: ACCOUNT:SERVICES:QUEUE:PUBLISH
|
|
# REDIS_STREAM_QUEUE_TASKS: ACCOUNT:SERVICES:QUEUE:TASKS
|
|
# depends_on:
|
|
# - redis
|
|
# # - db-service
|
|
# # - mail-service
|
|
# # - queue-service
|
|
# networks: [servicesNetwork]
|
|
# restart: "no"
|
|
# logging:
|
|
# driver: "json-file"
|
|
# options:
|
|
# max-size: "10m"
|
|
# max-file: "3"
|
|
|