Manajemen Proses

Adi Purnama
Dokku menggunakan `Procfile` untuk mendefinisikan proses-proses yang ada untuk suatu aplikasi. Kalau pernah pakai Heroku, pasti udah familiar dengan file yang satu ini.
Isinya terdiri dari 2 hal:
- nama proses, contohnya `web`, `worker`
- perintah untuk menjalankan proses, Misal, kita punya suatu aplikasi Ruby on Rails. Proses `web` tujuannya untuk menjalankan HTTP server, maka perintahnya adalah `bundle exec rails server`. Sementara, proses `worker` tujuannya untuk menghandle background jobs, sehingga perintahnya adalah `bundle exec sidekiq`.
Berikut contoh Procfile
web: bundle exec rails server
worker: bundle exec sidekiq
Perintah tersebut akan membuat 2 container berbeda dari 1 image yang sama. Contohnya di Kanyaah, salah satu project saya.
Ketika deploy aplikasi, proses `web` akan otomatis di-scale menjadi 1. Sementara, untuk proses `worker`, kita harus scale secara manual menggunakan perintah berikut:
dokku ps:scale app-name worker=1
# bisa juga langsung banyak proses
dokku ps:scale app-name web=1 worker=1
Beberapa command lain yang perlu diketahui untuk mengatur proses aplikasi:
- `dokku ps:rebuild app-name` untuk build ulang aplikasi dari Docker image yang ada.
- `dokku ps:start app-name` untuk start aplikasi
- `dokku ps:stop app-name` untuk stop aplikasi, sehingga akan muncul error 502 Bad Gateway.
- `dokku ps:restart` untuk memulai ulang aplikasi.
- `dokku ps:scale app-name web=NUM1 worker=NUM2`, untuk menentukan jumlah instance per proses.