Pada dokumentasi ini saya akan coba mencontohkan bagaimana deploy/install docker Nginx Proxy Manager (reverse proxy) di Container MikroTik.
Docker Compose
Kalau kita ingin men deploy Nginx Proxy Manager di docker menggunakan docker-compose menggunakan contoh file docker-compose.yml yang ber isi seperti ini :
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Trus gimana bagaimana caranya kalau kita deploy nya di Container Mikrotik?
Deploy
Mounting Volume
/container mounts
add dst=/data name=npm_data src=/disk1/container-data/npm/data
add dst=/etc/letsencrypt name=npm_letsencrypt src=\
/disk1/container-data/npm/letsencrypt
Buat Virtual Ethernet VETH
/interface veth
add address=192.100.0.2/28 gateway=192.100.0.1 name=veth1-npm
Buat Interface Bridge Docker
/interface bridge
add name=bridge1-docker
/interface bridge port
add bridge=bridge1-docker interface=veth1-npm
Tambahkan IP Gateway Container
/ip address
add address=192.100.0.1/28 interface=bridge1-docker network=192.100.0.0
Step 3 – Pull Docker Image
/container
add interface=veth1-npm logging=yes \
mounts=npm_data,npm_letsencrypt root-dir=disk1/container-image/npm \
start-on-boot=yes
Troubleshot
Saat artikel ini saya buat, ada kondisi yang harus dilakukan saat kita pakai RouterOS (7.15.3) and NPM (v2.11.3) agar docker nginx proxy manager dapat berjalan normal. Karena jika kita “Start” akan muncul error pada log seperti ini :
nginx: [emerg] a duplicate default server for 0.0.0.0:81 in /etc/nginx/conf.d/production.conf:3
Untuk memperbaikinya kita perlu menghapus file dev.conf dalam directory /etc/nginx/conf.d. Dengan cara dengan perintah berikut :
$ container/shell
$ number: 1 # < sesuaikan nomor container NPM Anda saat ditanya
$ rm /etc/nginx/conf.d/dev.conf
$ exit