rubis/docker-compose.dev.yml
ordinarthur a8c7ab539a chore(dev): swap mailhog → mailpit (multi-arch, maintenu)
mailhog n'est plus maintenu et ne ship qu'en amd64 — sur Apple Silicon ça déclenche un warning Rosetta. Mailpit est le successeur drop-in (mêmes ports SMTP 1025 / UI 8025), multi-arch, activement maintenu.
2026-05-06 13:02:36 +02:00

89 lines
2.1 KiB
YAML

name: rubis-dev
services:
postgres:
image: postgres:16-alpine
container_name: rubis-postgres
restart: unless-stopped
environment:
POSTGRES_USER: rubis
POSTGRES_PASSWORD: rubis
POSTGRES_DB: rubis_dev
ports:
- '5433:5432'
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U rubis -d rubis_dev']
interval: 5s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
container_name: rubis-redis
restart: unless-stopped
ports:
- '6380:6379'
volumes:
- redis_data:/data
healthcheck:
test: ['CMD', 'redis-cli', 'ping']
interval: 5s
timeout: 5s
retries: 5
minio:
image: minio/minio:latest
container_name: rubis-minio
restart: unless-stopped
command: server /data --console-address ':9001'
environment:
MINIO_ROOT_USER: rubis
MINIO_ROOT_PASSWORD: rubis-dev-secret
ports:
- '9100:9000' # API S3
- '9101:9001' # Console web
volumes:
- minio_data:/data
healthcheck:
test: ['CMD', 'curl', '-f', 'http://localhost:9000/minio/health/live']
interval: 10s
timeout: 5s
retries: 5
# Crée le bucket invoices au démarrage puis sort
minio-bootstrap:
image: minio/mc:latest
container_name: rubis-minio-bootstrap
depends_on:
minio:
condition: service_healthy
entrypoint: >
/bin/sh -c "
mc alias set local http://minio:9000 rubis rubis-dev-secret;
mc mb --ignore-existing local/rubis-invoices;
mc anonymous set none local/rubis-invoices;
exit 0;
"
# Mailpit = successeur multi-arch et activement maintenu de Mailhog,
# protocole et UI compatibles (SMTP 1025, web UI 8025).
mailpit:
image: axllent/mailpit:latest
container_name: rubis-mailpit
restart: unless-stopped
ports:
- '1025:1025' # SMTP
- '8025:8025' # Web UI
healthcheck:
test: ['CMD', 'wget', '--quiet', '--spider', 'http://localhost:8025/livez']
interval: 10s
timeout: 5s
retries: 5
volumes:
postgres_data:
redis_data:
minio_data: