• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI DAN PENGUJIAN

4.2 Konfigurasi Docker

4.2.6 Instalasi Multi Container menggunakan Docker-Compose

Satu lagi kemudahan yang disediakan oleh Docker ialah docker-compose. Docker-compose ialah tool untuk mendefinisikan dan menjalankan beberapa app container sekaligus. User menggunakan YAML file untuk mengkonfigurasi service yang akan digunakan. Dan hanya dengan satu baris perintah, user bisa membuat dan menjalankan banyak service dari konfigurasi tersebut.

a. Mendefinisikan lingkungan aplikasi dengan dockerfile sehingga bisa dibuat ulang dimana saja.

b. Mendefinisikan services yang akan dibuat didalam docker-compose.yml lalu services tersebut akan jalan bersamaan dalam lingkungan yang terisolasi.

c. Gunakan perintah docker-compose up dan compose akan mulai dan menjalankan seluruh applikasi yang ada di docker-compose.yml. Fitur Compose yang membuatnya menjadi lebih efektif:

a. Beberapa container dari satu project didalam sebuah host b. Menyediakan volume data ketika container dibuat

c. Hanya membuat ulang container yang mengalami perubahan d. Compose support variable didalam file nya.

Implementasi docker-compose pada kantor Diskominfo Kota Payakumbuh adalah dengan menjalankan tiga container sekaligus, yaitu: wordpress website, mysql sebagai database-nya, dan phpmyadamin sebagai control panel database.

Langkah-langkah yang harus dilakukan untuk instalasi webserver wordpress menggunakan docker-compose adalah sebagai berikut:

1. Install terlebih dahulu docker-compose karena compose merupakan tool yang bukan bawaan dari instalasi docker-ce.

Perintah curl berguna untuk mentransfer data dari suatu halaman http atau https ke dalam file system. Options –L digunakan agar saat server sudah memindahkan data ke lokasi berbeda, opsi ini akan membuat curl melakukan request ke halaman tersebut. Sedangnkan –o digunakan untuk menuliskan output dari hasil transfer data.

2. Selanjutnya hak akses executable ke binary.

Gambar 4. 49 Executable docker-compose

Perintah diatas digunakan untuk menambahkan executable pada file binary docker-compose.

3. Cek instalasi docker-compose dengan melakukan cek versi compose.

Gambar 4. 50 Cek versi docker-compose

Perintah diatas melakukan cek versi docker-compose yang sudah terinstall. Docker-compose v1.16.1 adalah versi terbaru dari docker-compose.

4. Selanjutnya adalah membuat direktori yang didalamnya ditambahkan data wordpress wp-content.

Perintah git digunakan untuk membuat clone dari repository GitHub ke filesystem dan selanjutnya data tersebut dipindahkan ke direktori /home/oghuzima/.dockerwordpress/.

5. Setelah proses copy wp-content selesai, buat file baru didalam direktori .dockerwordpress dengan nama docker-compose.yml.

Gambar 4. 52 docker-compose.yml

Didalam file docker-compose.yml terdapat konfigurasi sebagai berikut: a. Service pertama adalah wordpress dengan depends_on ke db service. Lalu image yang digunakan 4.8.1 (bisa dari repositori atau filesystem). Fungsi volume melakukan link direktori wp-content ke /var/www/html/wp-wp-content di service wordpress. Konfigurasi variable environment untuk koneksi ke database db. b. Service kedua adalah db yang nantinya akan dijadikan database. Menggunakan image mysql:5.7. Volume db_data akan dibuat saat proses compose dilakukan dan akan terkoneksi ke /var/lib/mysql. Setting variable MYSQL_ROOT_PASSWORD.

c. Service ketiga adalah phpmyadmin dengan depends_on juga menunggu instalasi service db selesai. Buat variable MYSQL_ROOT_PASSWORD dan port 80 di expose ke 8016. 6. Setelah selesai membuat konfigurasi, gunakan perintah

docker-compose up untuk menjalankan docker-compose.

Gambar 4. 53 Docker-compose up

Perintah diatas akan menjalankan file konfigurasi docker-compose.yml dengan flag –d untuk detached. Dari proses terlihat compose melakukan proses pulling dari repositori. Jika ingin membuat image dari docker-compose tambahkan perintah –build diakhir docker-docker-compose up. 7. Setelah proses docker-compose, gunakan perintah docker ps untuk

melihat apakah container yang dibuat oleh compose, running atau tidak.

Gambar 4. 54 Cek container wordpress

Terlihat pada docker ps bahwa container wordpress, mysql, phpmyadmin sudah berjalan dengan expose port sesuai dengan yang dikonfigurasi.

8. Selanjutnya cek website phpmyadmin dengn alamat 172.28.1.101:8016

Gambar 4. 55 Halaman utama PhpMyadmin

Dari halaman utama login dengan user root dan password seperti yang telah dibuat saat konfigurasi docker-compose tadi.

9. Selanjutnya cek wordpress dengan alamat 172.28.1.101:8015.

Gambar 4. 56 Halaman awal instalasi Wordpress

Lakukan instalasi wordpress, mulai dari pemilihan bahasa, informasai yang dibutuhkan seperti site title, username, password, email. Setelah itu login menggunakan user dan password yang sudah dibuat tadi. 10. Login ke 172.28.1.101:8015/wp-admin untuk masuk ke admin page.

Gambar 4. 57 Wordpress wp-admin

Wp-admin merupakan halaman yang digunakan oleh admin untuk melakukan konfigurasi wordpress serta memuat postingan terlihat pada halaman utama dan merupakan halaman yang bisa diakses oleh user, di dalam wp-admin terdapat plugins, appearance, users, media, pages, dan lain sebagainya.

11. Buat sebuah postingan agar dapat dilihat dihalaman utama dari wordpress yang beralamat 172.28.1.101:8015.

Nantinya postingan yang telah dibuat oleh admin pada wp-admin, akan muncul pada frontend untuk ditampilkan ke pengguna website.

12. Berikut hasil dari postingan admin yang ditampilkan di frontend wordpress.

Gambar 4. 59 Tampilan website wordpress dengan postingan Tampilan diatas adalah frontend dari container wordpress yang diinstall melalui docker-compose. Untuk mengubah tema bisa dilakukan di wp-admin.

Selanjutnya juga di implementasikan container haproxy sebagai reverse proxy. HAProxy adalah salah satu software yang mendukung load balancing dan proxy untuk protokol TCP dan HTTP. Untuk reverse proxy, konfigurasi yang akan digunakan pada haproxy ialah melakukan binding ke port yag dipilih, lalu mengatur jalur akses ke masing-masing container yang didaftarkan. Berikut langkah-langkah instalasi haproxy dengan container:

1. Buatlah sebuah direktori dengan nama dockerlb, lalu buat kembali direktori didalamnya dengan nama haproxy.

2. Pada direktori dockerlb, akan ditambahkan file konfigurasi docker-compose.yml.

Gambar 4. 60 Konfigurasi docker-compose haproxy

Konfigurasi docker-compose.yml pada gambar 4.60 akan menjalankan tiga buah container. Container web1 dan web2 ialah service webserver yang akan diubah akses url-nya menggunakan haproxy. Akses via url browser akan diganti dari 172.28.1.101:81 menjadi 172.28.1.101/web1 untuk container web1, begitu juga container web2. Service haproxy akan menjalankan dockerfile yang ada di direktori haproxy.

3. Dockerfile yang ada didalam direktori haproxy digunakan untuk install image haproxy lalu meng-update konfigurasi haproxy.cfg pada container haproxy dengan konfigurasi baru.

Perintah FROM berfungsi untuk mengambil haproxy:1.7 sebagai base image dockerfile, lalu perintah COPY akan meng-update file haproxy.cfg pada container haproxy dengan haproxy.cfg yang ada pada filesystem host.

4. Selanjutnya buat file konfigurasi haproxy.cfg pada direktori haproxy.

Gambar 4. 62 Konfigurasi haproxy.cfg

Konfigurasi defaults memberikan lama waktu timeout koneksi. Frontend akan melakukan binding semua akses ke port 80, lalu ditambahkan access-list dengan path_beg dan use_backend. Maksud perintah didalam frontend ialah buat acl has_web1 dengan path_beg /web1, lalu gunakan use_backend web1 jika ada akses ke has_web1, begitu juga untuk acl has_web2. Backend web1, akan berfungsi menggantikan alamat dari akses web1:80 ke acl has_web1 dengan

path_beg /web1. Jadi penulisan di url menjadi 172.28.1.101/web1. Begitu juga untuk web2 akan menjadi 172.28.1.101/web2.

5. Langkah terakhir, jalankan compose dengan perintah docker-compose up seperti pada gambar 4.53, dan lakukan akses url browser dengan alamat path.

Gambar 4. 63 Akses container web1 dan web2 dengan haproxy Terlihat pada gambar 4.63, akses url yang digunakan tidak menggunakan port masing-masing container, tetapi menggunakan path yang dibuat pada konfigurasi haaproxy.cfg.

Dokumen terkait