thread-master/old/infra/docker-compose.yml

84 lines
2.3 KiB
YAML
Raw Normal View History

2026-07-07 14:02:41 +00:00
# 巡樓資料服務Mongo + Redis + MinIO + Mailpit
# 只綁 127.0.0.1,給同主機上以 systemd 跑的 Go gateway / worker 連線。
# 啟動devmake dev-infra # 讀 deploy/.env.dev
# 啟動prodmake prod-infra # 讀 deploy/.env.prod
name: haixun-infra
services:
mongo:
image: mongo:7
restart: unless-stopped
ports:
- "127.0.0.1:${MONGO_PORT:-27017}:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_ROOT_USER:-haixun}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_ROOT_PASSWORD:?MONGO_ROOT_PASSWORD is required}
MONGO_INITDB_DATABASE: ${MONGO_DATABASE:-haixun}
volumes:
- mongo_data:/data/db
healthcheck:
test: ["CMD", "mongosh", "--quiet", "--eval", "db.adminCommand('ping')"]
interval: 10s
timeout: 5s
retries: 5
start_period: 20s
networks:
- haixun-infra
redis:
image: redis:7
restart: unless-stopped
command: ["redis-server", "--requirepass", "${REDIS_PASSWORD:?REDIS_PASSWORD is required}", "--appendonly", "yes"]
ports:
- "127.0.0.1:${REDIS_PORT:-6379}:6379"
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
networks:
- haixun-infra
2026-07-07 14:02:41 +00:00
minio:
image: minio/minio:RELEASE.2025-04-22T22-12-26Z
restart: unless-stopped
command: ["server", "/data", "--console-address", ":9001"]
ports:
- "127.0.0.1:${MINIO_API_PORT:-9000}:9000"
- "127.0.0.1:${MINIO_CONSOLE_PORT:-9001}:9001"
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-haixun}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:?MINIO_ROOT_PASSWORD is required}
volumes:
- minio_data:/data
healthcheck:
test: ["CMD", "mc", "ready", "local"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
networks:
- haixun-infra
mailpit:
image: axllent/mailpit:v1.27
restart: unless-stopped
ports:
2026-07-09 03:45:28 +00:00
# SMTP 只給本機 gateway 投遞Web UI 開區網方便用手機/另一台電腦看信
2026-07-07 14:02:41 +00:00
- "127.0.0.1:${MAILPIT_SMTP_PORT:-1025}:1025"
2026-07-09 03:45:28 +00:00
- "${MAILPIT_UI_PORT:-8025}:8025"
2026-07-07 14:02:41 +00:00
networks:
- haixun-infra
volumes:
mongo_data:
redis_data:
2026-07-07 14:02:41 +00:00
minio_data:
networks:
haixun-infra:
name: haixun-infra