services:
  app:
    image: git.exavolt.web.id/fikri/fullstack-portfolio:latest
    container_name: fikri-portfolio-app
    restart: always
    ports:
      - "4000:4000"
    
    # OPTIMASI 1: Cukup gunakan env_file atau environment, jangan keduanya untuk variabel yang sama
    # Jika variabel sudah ada di .env, Docker akan otomatis memetakan ke container.
    env_file:
      - .env
    
    environment:
      # OPTIMASI 2: Set Node Environment ke production untuk performa lebih cepat
      NODE_ENV: production
      PORT: 4000 
      
    # OPTIMASI 3: Resources Limit (Mencegah VPS hang jika ada memory leak)
    deploy:
      resources:
        limits:
          memory: 512M
    
    extra_hosts:
      - "host.docker.internal:host-gateway"
    
    # OPTIMASI 4: Logging limit agar disk VPS tidak penuh oleh log docker
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
    
    # OPTIMASI 5: Migrasi Database
    # Jika image Anda sudah sangat minimal (alpine), pastikan npx tersedia.
    # Lebih baik migrasi dilakukan di tahap CI atau via script init.
    command: >
      sh -c "npx prisma migrate deploy && node server.js"