Implementasi beberapa container dalam 1 node dengan memanfaatkan nginx-reverse-proxy.
Dalam contoh ini, saya sertakan 2 contoh basic app (expressjs dan laravel), yang sebenarnya bisa terpisah dari repo ini (memiliki repo masing-masing / di develop beda tim). Repo ini sebenarnya hanya untuk reverse-proxy nya.
├── README.md
├── docker-compose.yml
├── expressjs
└── laravel
Bayangkan bahwa expressjs dan laravel merupakan container, dan akan di deploy dalam 1 node/host, dan masing-masing menggunakan subdomain. Gambarannya sebagai berikut :
- Pastikan docker dan docker-compose sudah terinstall di node/server
- Agar nginx-proxy dapat mengarahkan ke service mana (dari subdomain), perlu dibuatkan 1 network external dari docker :
docker network create nginx-proxy-net
- Di directory root, sesuaikan file .env, kemudian jalankan perintah :
docker-compose up -d
- Di directory expressjs, jalankan perintah :
docker-compose build
docker-compose up -d
- Di directory laravel, sesuaikan file .env, kemudian jalankan perintah :
docker-compose build
docker-compose up -d
- Untuk pengetesan url, harap perhatikan environment variable
VIRTUAL_HOST
di dalam docker-compose.yml masing-masing app. - Untuk port yang di gunakan, perhatikan environment variable
HOST_PORT_HTTP
dari file .env di root.