Di story sebelumnya kita sudah sempat membangun image moodle menggunakan Dockerfile , silahkan baca story sebelumnya sebelum mengikuti story ini.

Untuk membangun container kita dapat menggunakan 2 cara yaitu

  • secara interaktif (langsung dengan perintah docker)
  • menggunakan docker-compose

Pada story ini saya akan membahas kedua cara tersebut

Secara Interaktif

Secara interaktif disini berarti kita langsung menggunakan perintah docker untuk membangun container, perintah yang akan kita gunakan yaitu

$ docker run

Untuk menginstall Moodle, perlu kita ketahui kita memerlukan sebuah database untuk menyimpan data aplikasi moodle

Disini saya akan menggunakan mariadb sebagai database moodle. Jadi kita akan membangun 2 container, yaitu mariadb dan moodle itu sendiri

Membuat User-define Network

pertama kita harus membuat docker network baru, dimana bertujuan agar nantinya container mariadb dan moodle dapat saling berkomunikasi menggunakan container names . Ini bertujuan karena ip address dari container dapat berubah sewaktu waktu jika mengalami kendala

$ docker network create moodle

Run container Mariadb

kita memerlukan bind mount docker agar data dalam container mariadb menjadi persistent dan ada di local host kita

$ mkdir /var/lib/mysql-moodle

$ docker run --name=moodle_db_1 --network=moodle \
-e MYSQL_ROOT_PASSWORD=m00dle \
-e MYSQL_USER=moodle \
-e MYSQL_PASSWORD=m00dle \
-e MYSQL_DATABASE=moodle \
-v /var/lib/mysql-moodle:/var/lib/mysql \
mariadb:latest

lokasi dari bind mount disini adalah /var/lib/mysql-moodle pada local host machine kita dan /var/lib/mysql pada container mariadb

baca selengkapnya mengenai bind mount docker

Run container Moodle

$ docker run --name=moodle_app_1 --network=moodle -d -p 80:80 prasta/moodle:latest

disini saya mempublish port 80 host ke port 80 container

Menggunakan docker-compose

Untuk menggunakan docker-compose pastikan kalian harus menginstallnya terlebih dahulu di host kalian, pelajari cara menginstall docker-compose pada sistem operasi host kalian disini

Buat konfigurasi file docker-compose.yml

$ nano docker-compose.ymlversion: '3' 
services:
db:
image: mariadb:latest
volumes:
- moodle_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: m00dle
MYSQL_DATABASE: moodle
MYSQL_USER: moodle
MYSQL_PASSWORD: m00dle
networks:
- moodle

app:
depends_on:
- db
image: prasta/moodle:latest
ports:
- "80:80"
restart: always
networks:
- moodle

volumes:
moodle_data:

networks:
moodle:

Jalankan docker-compose

sebelum dijalankan, pastikan kalian berada di direktori dimana file docker-compose.yml itu berada

$ docker-compose up -d

Install Moodle pada browser

Untuk proses penginstall moodle selanjutnya adalah pada browser

akses moodle menggunakan http://$host-ip-address

bagian yang perlu diperhatikan adalah saat konfigurasi database. saat ditanya pilihlah database mariaDB . dan pada bagaian Database Setting, atur seperti ini

Perlu diperhatikan bahwa moodle_db_1 adalah container names . kita dapat mengakses container mariaDB menggunakan container name karena kita membuat user-define network sebelumnya