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"