version: '3.8' services: vims-api: build: . ports: - "3450:3450" environment: - NODE_ENV=production - PORT=3450 - DB_HOST=postgres - DB_PORT=5432 - DB_NAME=vims - DB_USER=vims - DB_PASSWORD=vims - REDIS_HOST=redis - REDIS_PORT=6379 depends_on: - postgres - redis volumes: - ./data:/app/data - ./logs:/app/logs restart: unless-stopped vims-worker: build: . command: node src/workers/processQueue.js environment: - NODE_ENV=production - DB_HOST=postgres - DB_PORT=5432 - DB_NAME=vims - DB_USER=vims - DB_PASSWORD=vims - REDIS_HOST=redis - REDIS_PORT=6379 depends_on: - postgres - redis volumes: - ./data:/app/data - ./logs:/app/logs restart: unless-stopped deploy: replicas: 2 postgres: image: postgres:15-alpine environment: - POSTGRES_DB=vims - POSTGRES_USER=vims - POSTGRES_PASSWORD=vims volumes: - postgres_data:/var/lib/postgresql/data ports: - "5433:5432" restart: unless-stopped redis: image: redis:7-alpine volumes: - redis_data:/data ports: - "6380:6379" restart: unless-stopped minio: image: minio/minio:latest command: server /data --console-address ":9001" environment: - MINIO_ROOT_USER=vims - MINIO_ROOT_PASSWORD=vims-secret-key volumes: - minio_data:/data ports: - "9000:9000" - "9001:9001" restart: unless-stopped volumes: postgres_data: redis_data: minio_data: