
version: "3"
services: 
  app:
    image: registry.gitlab.com/prod-manager/prod-manager:latest
    deploy:
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 5
      resources:
        limits:
          cpus: '0.50'
          memory: 150M
        reservations:
          cpus: '0.05'
          memory: 100M
    environment:
      PORT: 8080
      PM_SECRET_KEY: changeit
      PM_DATABASE_URI: postgresql://prodmanager:changeit@database/prodmanager
      PM_STANDALONE: 'true'
      PM_API_RATELIMIT_ENABLED: 'true'
      PM_REDIS_URI: redis://redis
    ports:
      - 8080:8080
    networks: 
      - prod-manager

  database:
    image: postgres:latest
    deploy:
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 5
      resources:
        limits:
          cpus: '0.50'
          memory: 100M
        reservations:
          cpus: '0.05'
          memory: 50M
    environment:
      POSTGRES_PASSWORD: changeit
      POSTGRES_USER: prodmanager
      POSTGRES_DB: prodmanager
    networks:
      - prod-manager

  redis:
    image: redis:latest
    deploy:
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 5
      resources:
        limits:
          cpus: '0.50'
          memory: 100M
        reservations:
          cpus: '0.05'
          memory: 50M
    networks:
      - prod-manager

networks:
  prod-manager: