Install LAMP dengan Docker
Pada tutorial kali ini kita akan belajar bagaimana cara install LAMP (Apache MariaDB PHP) dengan Docker.
Install Docker
1 2 3 4 5 6 7 8 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null apt update apt install docker-ce docker-ce-cli containerd.io -y |
1 2 3 | wget https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-linux-x86_64 -O /usr/bin/docker-compose chmod +x /usr/bin/docker-compose |
Config docker-compose
Membuat direktori untuk project docker-compose.
1 2 | mkdir -p lamp/www cd lamp |
Membuat file docker-compose.yml.
1 | nano docker-compose.yml |
Masukkan konfigurasinya.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | version: '3.7' services: php-httpd: image: php:7.4-apache ports: - 80:80 volumes: - ./www:/var/www/html mariadb: image: mariadb:10.6.8 volumes: - vol-mariadb:/var/lib/mysql environment: MYSQL_ALLOW_EMPTY_PASSWORD: "no" MYSQL_ROOT_PASSWORD: "secret" MYSQL_USER: "myuser" MYSQL_PASSWORD: "mypass" MYSQL_DATABASE: "mydb" phpmyadmin: image: phpmyadmin/phpmyadmin links: - mariadb:db ports: - 8181:80 volumes: vol-mariadb: |
Ringkasan docker-compose:
- Membuat container php-httpd yang berbasis image php7.4-apache, expose port 80, dan mounting folder www untuk /var/www/html
- Membuat container mariadb yang berbasis image mariadb 10.6.8, membuat vol-mariadb untuk /var/lib/mysql, dan variabel environment.
- Membuat container phpmyadmin yang berbasis image phpmyadmin, terhubung ke container mariadb, dan expose port 80
Membuat file index.php.
1 | echo "<?php phpinfo(); ?>" > www/index.php |
Run docker-compose
Menjalankan docker-compose up untuk build config docker-compose.
1 | docker-compose up -d |
Setelah build selesai, cek apakah container sudah berjalan.
1 | docker ps |
Hasilnya.
1 2 3 4 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 57f2562197e0 phpmyadmin/phpmyadmin "/docker-entrypoint.…" 9 seconds ago Up 6 seconds 0.0.0.0:8181->80/tcp, :::8181->80/tcp lamp-phpmyadmin-1 9c36f924c8d7 mariadb:10.6.8 "docker-entrypoint.s…" 9 seconds ago Up 7 seconds 3306/tcp lamp-mariadb-1 3ea212e417a7 php:7.4-apache "docker-php-entrypoi…" 9 seconds ago Up 7 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp lamp-php-httpd-1 |
Browse http://IP-Server untuk menguji apakah web server dan PHP dapat diakses.
Browse http://IP-Server:8181 untuk menguji apakah phpMyAdmin dapat diakses.
Selamat mencoba 🙂