Menambahkan/Edit Entrypoint pada Docker Container Existing

Setelah saya berhasil melakukan expose port pada Docker Container Existing, akhirnya saya bisa mengakses tampilan dari webserver yang sudah disetup. Saya bisa akses dari PC lain dengan cara akses IP Host Docker Container (contoh : http://192.168.11.12:8080) dan muncullah tampilannya. Namun problem yang lain muncul ketika Host-nya mengalami reboot. Meskipun Containernya sudah disetup auto start, tapi service Apache2 yang sudah disetup pada Container tidak auto start. Alhasil, saya harus masuk terlebih dahulu pada Container tersebut dan menjalankan perintah start Apache2 (/etc/init.d/apache2 start). Setelah dijalankan, web server dapat diakses kembali dari PC lain.

Untuk mengatasi hal tersebut, saya dapat menambahkan atau edit Entrypoint. Entrypoint biasa digunakan untuk menyisipkan perintah atau eksekusi script yang dijalankan ketika Docker Container distart.

Agar service Apache2 pada Container otomatis start, saya membuat script execute untuk ditambahkan pada entrypoint. Pada contoh disini, saya memiliki Container dengan nama webserver.

– Masuk pada Docker Container


docker exec -it webserver bash

– Buat script execute didalam Docker Container


vi /services.sh

Isi dengan isian seperti berikut

#!/bin/bash
/etc/init.d/apache2 start
/bin/bash

– Berikan hak akses eksekusi pada script tersebut

chmod +x /services.sh

Simpan dan keluar dari Container. Untuk menambahkan atau edit Entrypoint pada Docker Container Existing, tahapannya sama seperti pada tulisan tips expose port pada Docker Container Existing.

– Dapatkan lokasi dari konfigurasi Container. Dalam contoh disini, saya cari HostnamePath


docker inspect id-container | grep HostnamePath

Berikut contoh hasilnya

"HostnamePath": "/var/lib/docker/containers/1e5f210c87a86547f95a5f64f25b93d85f944e1b5d110007451cbd86aeead90c/hostname",

– Stop service Docker


systemctl stop docker

– Masuk pada folder hasil inspect diatas (tanpa hostname)

cd /var/lib/docker/containers/1e5f210c87a86547f95a5f64f25b93d85f944e1b5d110007451cbd86aeead90c

– Backup file config.v2.json


cp config.v2.json backup-config.v2.json

– Buka file config.v2.json


vi config.v2.json

Cari tulisan Path dan Entrypoint. Kemudian sesuaikan isinya seperti berikut :

"Path":"/services.sh"
"Entrypoint":["/services.sh"]

– Setelah selesai dimodifikasi, jalankan kembali service Dockernya dan start Container nya


systemctl start docker
docker start container-id

Berikut ini adalah tampilan sebelum dan sesudah dilakukan modifikasi.

Sebelum

root@lenovo:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                      NAMES
1e5f210c87a8        ubuntu:18.04        "/bin/bash"         35 minutes ago      Up 2 minutes        0.0.0.0:22->22/tcp, 0.0.0.0:8080->80/tcp   webserver

Sesudah

root@lenovo:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                      NAMES
1e5f210c87a8        ubuntu:18.04        "/services.sh"      5 hours ago         Up 3 seconds        0.0.0.0:22->22/tcp, 0.0.0.0:8080->80/tcp   webserver

Pada bagian COMMAND berubah dari “/bin/bash” menjadi “/services.sh”. Saya coba cek pada Docker Container untuk memastikan service Apache2 otomatis start


docker exec webserver ps -ax

Berikut hasilnya

root@lenovo:~# docker exec webserver ps -ax
  PID TTY      STAT   TIME COMMAND
    1 pts/0    Ss     0:00 /bin/bash /services.sh
   29 ?        Ss     0:00 /usr/sbin/apache2 -k start
   32 pts/0    S+     0:00 /bin/bash
   33 ?        Sl     0:00 /usr/sbin/apache2 -k start
   34 ?        Sl     0:00 /usr/sbin/apache2 -k start

Terlihat service Apache2 sudah running. Saya coba testing akses via browser dan hasilnya dapat diakses

Silakan dicoba dan semoga bermanfaat 🙂

Ahmad Imanudin, Tinggal di Bekasi. Bekerja sebagai salah satu staff di PT. Excellent Infotama Kreasindo. Dapat dihubungi pada alamat surel ahmad [at] imanudin.com

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

You might also like
Tips Menambahkan External Warning pada Proxmox Mail Gateway

Tips Menambahkan External Warning pada Proxmox Mail Gateway

Menambahkan Modul Set Flag Moderated melalui CLI pada Mailman

Menambahkan Modul Set Flag Moderated melalui CLI pada Mailman

Cara Membuat WhatsApp Gateway Sendiri dengan go-whatsapp-web-multidevice

Cara Membuat WhatsApp Gateway Sendiri dengan go-whatsapp-web-multidevice

Stay Connected
Panduan Instalasi dan Konfigurasi Proxmox Backup Server
Panduan Mengirim Notifikasi Proxmox ke WhatsApp Menggunakan Webhook
Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 1,863 other subscribers
Categories