Docker adalah platform open-source yang memungkinkan developer untuk membuat, menguji, dan menjalankan aplikasi secara terisolasi dalam sebuah container. Dalam artikel ini, kami akan membahas cara deploy aplikasi NodeJS ke Docker.
Langkah 1: Persiapan
Sebelum memulai proses deployment, Anda harus memastikan bahwa aplikasi NodeJS Anda sudah siap untuk di-deploy. Pastikan bahwa aplikasi Anda sudah diuji secara lokal dan bekerja dengan baik. Kemudian, pastikan bahwa Anda sudah mempunyai Docker diinstal di mesin Anda.
Langkah 2: Membuat Dockerfile
Langkah berikutnya adalah membuat Dockerfile. Dockerfile adalah file yang berisi instruksi untuk membuat image Docker. Image Docker adalah template untuk membuat container Docker.
Buka text editor dan buat file dengan nama Dockerfile. Kemudian, tambahkan kode berikut:
FROM node:latestWORKDIR /appCOPY package*.json ./RUN npm installCOPY . .EXPOSE 8080CMD [ "npm", "start" ]
Pada baris pertama, kami menggunakan image node:latest sebagai base image. Kemudian, kami membuat direktori kerja /app dan menyalin package.json dan package-lock.json ke direktori tersebut. Kemudian, kami menjalankan perintah npm install untuk menginstall semua dependency yang diperlukan. Selanjutnya, kami menyalin semua file dari direktori saat ini ke direktori kerja /app. Kami juga mengekspos port 8080 dan menentukan perintah untuk menjalankan aplikasi dengan perintah npm start.
Langkah 3: Build Image Docker
Selanjutnya, build image Docker dengan menjalankan perintah berikut:
docker build -t nama_image .
Perintah di atas akan membaca Dockerfile dan membuat image Docker dengan nama nama_image.
Langkah 4: Jalankan Container Docker
Setelah image Docker selesai dibuat, selanjutnya jalankan container Docker dengan menjalankan perintah berikut:
docker run -p 8080:8080 nama_image
Perintah di atas akan menjalankan container dengan nama nama_image. Flag -p menentukan port yang akan diexpose pada container. Dalam contoh ini, port 8080 akan diexpose. Anda dapat mengganti angka 8080 dengan port yang Anda inginkan.
Langkah 5: Deploy Aplikasi ke Docker Swarm
Jika Anda ingin deploy aplikasi Anda ke Docker Swarm, Anda harus membuat sebuah file docker-compose.yml. File ini berisi konfigurasi untuk menjalankan aplikasi di lingkungan Docker Swarm. Berikut adalah contoh konfigurasi:
version: '3'services:app:image: nama_imagedeploy:replicas: 3update_config:parallelism: 2delay: 10srestart_policy:condition: on-failureports:- "8080:8080"
Pada konfigurasi di atas, kita mendefinisikan sebuah service bernama app. Kami menggunakan image yang sudah kita buat sebelumnya dengan nama nama_image. Kami juga menentukan bahwa service ini akan di-deploy dalam tiga replica. Kami juga menentukan konfigurasi untuk update dan restart service. Terakhir, kami mengekspos port 8080.
Langkah 6: Deploy Aplikasi ke Kubernetes
Untuk deploy aplikasi ke Kubernetes, kami harus membuat sebuah file deployment.yml. Berikut adalah contoh konfigurasi:
apiVersion: apps/v1kind: Deploymentmetadata:name: applabels:app: appspec:replicas: 3selector:matchLabels:app: apptemplate:metadata:labels:app: appspec:containers:- name: appimage: nama_imageports:- containerPort: 8080
Pada konfigurasi di atas, kami mendefinisikan sebuah deployment bernama app. Kami menggunakan image yang sudah kita buat sebelumnya dengan nama nama_image. Kami juga menentukan bahwa deployment ini akan di-deploy dalam tiga replica. Terakhir, kami mengekspos port 8080.
Kesimpulan
Dalam artikel ini, kami telah membahas cara deploy aplikasi NodeJS ke Docker. Kami telah membahas langkah-langkah yang diperlukan untuk membuat Dockerfile, build image Docker, jalankan container Docker, deploy aplikasi ke Docker Swarm, dan deploy aplikasi ke Kubernetes. Dengan mengikuti langkah-langkah ini, Anda dapat dengan mudah deploy aplikasi NodeJS Anda ke Docker.