Docker
Docker adalah salah satu jenis dari deployment container yang dapat digunakan untuk membangun, mengemas dan menjalankan program yang telah dibuat yang tidak tergantung dengan sistem yang terdapat pada server.
- Membuat docker image
Seperti yang terdapat pada tulisan saya mengenai Deployment sebelumya. Docker mengemas aplikasi yang dibuat ke dalam sebuah image agar dapat dijalankan di server nantinya. Dan untuk membungkus aplikasi yang dibuat dibutuhkan sebuah file Dockerfile yang bersisi script untuk membungkus aplikasi ke suatu docker image.
Pada baris terakhir Dockerfile yang kami buat, terdapat perintah untuk menjalankan start.sh.
Perintah yang terdapat pada start.sh diperlukan untuk menjalankan aplikasi yang dibuat dan disesuaikan dengan framework yang digunakan.
Dan perintah yang digunakan agar aplikasi terbungkus ke dalam sebuah image adalah
docker build -t my-docker-image
dan kami memberikan tag kepada docker image kami dengan perintah
docker tag my-docker-image registry.docker.ppl.cs.ui.ac.id/pplc3/backend-staging:latest
- Menjalankan Image
Agar image dapat dijalankan di server, tentu saja image tersebut harus di push ke server terlebih dahulu dengan melakukan perintah
docker push registry.docker.ppl.cs.ui.ac.id/pplc3/backend-staging:latest
Selanjutnya lakukan konfigurasi pada container pada laman portainer.cs.ui.ac.id. Konfigurasi port yang tim kami tetapkan adalah
23312 → Back-end (Django)
23380 → Front-end (React)
xxxxx → Database (PostgreSQL)
Kemudian juga diperlukan sebuah volume agar perubahan yang terjadi pada source code ataupun database tidak hilang.
Setelah image back-end, front-end dan database telah terbuat, dibutuhkan network agar image-image yang terpisah tersebut dapat dijalankan secara kesatuan.
Agar kita tidak perlu mengulangi hal yang sama setiap kali melakukan update pada aplikasi, maka dibutuhkan sebuah script yang otomatis akan dijalankan setiap terdapat update.
Jadi setiap terdapat update, dan anggota tim yang bekerja dengan portainer sudah melakukan recreate image, maka aplikasi dapat dijalankan oleh setiap orang yang memiliki koneksi. Dalam hal ini aplikasi kami dapat dijalankan di registry.docker.ppl.cs.ui.ac.id:23380.