services: app: build: context: . dockerfile: Dockerfile depends_on: postgres: condition: service_healthy minio: condition: service_healthy env_file: - .env.docker environment: DOCKER_DB_HOST: postgres DOCKER_DB_PORT: '5432' MINIO_HEALTHCHECK_URL: http://minio:9000/minio/health/live ports: - '3000:3000' restart: unless-stopped postgres: image: postgres:16-alpine env_file: - .env.docker command: - 'postgres' - '-c' - 'max_connections=200' - '-c' - 'shared_buffers=256MB' - '-c' - 'work_mem=16MB' - '-c' - 'effective_cache_size=1GB' - '-c' - 'maintenance_work_mem=128MB' healthcheck: test: ['CMD-SHELL', 'pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB'] interval: 5s timeout: 5s retries: 20 volumes: - postgres-data:/var/lib/postgresql/data restart: unless-stopped minio: image: minio/minio:latest command: server /data --console-address ":9001" env_file: - .env.docker healthcheck: test: ['CMD', 'curl', '-f', 'http://localhost:9000/minio/health/live'] interval: 5s timeout: 5s retries: 20 ports: - '127.0.0.1:9000:9000' - '127.0.0.1:9001:9001' volumes: - minio-data:/data restart: unless-stopped volumes: postgres-data: minio-data: