Files
Imago/docker-compose.production.yml
T
bruno bc94e13dc8
CI / Lint & Format (push) Failing after 1s
CI / Tests (push) Has been skipped
CI / Security Scan (push) Failing after 1s
CI / Docker Build (push) Has been skipped
Change production service port mappings and fix YAML quotes
Port mappings for admin and backend services are updated to use
alternative external ports (3001 and 8001) to avoid conflicts.
Healthcheck arrays are also normalized to use double quotes
consistently throughout the file.
2026-06-22 22:15:34 -04:00

103 lines
2.7 KiB
YAML

# Imago — Docker Compose Production
# Usage: docker compose -f docker-compose.production.yml up -d
services:
# ── Admin Panel (React + Nginx) ───────────────────────────
admin:
image: docker-registry.dev.home:5000/imago-admin:latest
ports:
- "3001:80"
depends_on:
- backend
restart: unless-stopped
# ── API Backend ────────────────────────────────────────────
backend:
image: docker-registry.dev.home:5000/imago-backend:latest
ports:
- "8001:8000"
env_file: .env.production
environment:
REDIS_URL: redis://redis:6379/0
DATABASE_URL: postgresql+asyncpg://imago:imago@db:5432/imago
STORAGE_BACKEND: s3
S3_ENDPOINT_URL: http://minio:9000
S3_BUCKET: imago
S3_ACCESS_KEY: minioadmin
S3_SECRET_KEY: minioadmin
S3_REGION: us-east-1
volumes:
- uploads:/app/data/uploads
- thumbnails:/app/data/thumbnails
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
restart: unless-stopped
worker:
image: docker-registry.dev.home:5000/imago-backend:latest
command: python worker.py
env_file: .env.production
environment:
REDIS_URL: redis://redis:6379/0
DATABASE_URL: postgresql+asyncpg://imago:imago@db:5432/imago
STORAGE_BACKEND: s3
S3_ENDPOINT_URL: http://minio:9000
S3_BUCKET: imago
S3_ACCESS_KEY: minioadmin
S3_SECRET_KEY: minioadmin
S3_REGION: us-east-1
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: imago
POSTGRES_PASSWORD: imago
POSTGRES_DB: imago
volumes:
- pgdata:/var/lib/postgresql/data
- ./backups:/backups
healthcheck:
test: ["CMD-SHELL", "pg_isready -U imago -d imago"]
interval: 5s
timeout: 5s
retries: 5
restart: unless-stopped
redis:
image: redis:7-alpine
command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru
volumes:
- redisdata:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 3
restart: unless-stopped
minio:
image: minio/minio
command: server /data --console-address ':9001'
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
volumes:
- miniodata:/data
restart: unless-stopped
volumes:
pgdata:
redisdata:
miniodata:
uploads:
thumbnails: