# Menggunakan image Node.js 18 versi slim
FROM node:18-slim

# Menetapkan direktori kerja di dalam container
WORKDIR /var/www

# Menginstal express secara langsung
RUN npm install express

# Mendefinisikan argumen tanpa nilai default
ARG SOURCE_FOLDER

# Menyalin konten dari folder yang ditentukan ke dalam folder public di dalam container
COPY ${SOURCE_FOLDER}/ /var/www/public/

# Menyalin file server.js dari direktori root proyek
COPY server.js /var/www/server.js

# Mengatur hak akses direktori kerja
RUN chmod +rwx /var/www
RUN chmod -R 777 /var/www

# Menetapkan port yang digunakan aplikasi
ARG PORT=8200
ENV PORT=${PORT}

# Mengekspos port untuk akses dari luar container
EXPOSE ${PORT}

# Menjalankan aplikasi saat container mulai
CMD ["node", "server.js"]