services: web: #image: ghcr.io/zeecka/aperisolve:latest build: . container_name: aperisolve-web restart: always command: ["/bin/sh", "-c", "flask --app aperisolve.app run --host=0.0.0.0 --port=5000"] ports: - "5000:5000" volumes: - ./aperisolve:/aperisolve - apresults:/aperisolve/results depends_on: postgres: condition: service_healthy redis: condition: service_started worker: condition: service_started env_file: - .env environment: - FLASK_DEBUG=true - FLASK_ENV=development - SKIP_IHDR_FILL=1 worker: #image: ghcr.io/zeecka/aperisolve:latest build: . container_name: aperisolve-worker restart: always command: ["/bin/sh", "-c", "rq worker default --url redis://redis:6379/0"] volumes: - ./aperisolve:/aperisolve - apresults:/aperisolve/results # Shared named volume (renamed) depends_on: - redis - postgres env_file: - .env environment: - FLASK_DEBUG=true - FLASK_ENV=development - CLEAR_AT_RESTART=0 # Always false for worker to prevent double clearing redis: image: redis:8 container_name: redis restart: always env_file: - .env postgres: image: postgres:18 container_name: postgres restart: always volumes: - pgdata:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U aperiuser -d aperisolve"] interval: 5s timeout: 5s retries: 5 env_file: - .env rqdashboard: image: eoranged/rq-dashboard container_name: rq-dashboard restart: always ports: - "9181:9181" depends_on: - redis env_file: - .env volumes: apresults: pgdata: