Dalam dunia pengembangan web, LNMP Stack (Linux, Nginx, MySQL, PHP) telah menjadi pilihan populer untuk aplikasi PHP.
Dengan kemunculan Docker, pengembang kini dapat membangun dan mengelola lingkungan LNMP dengan lebih efisien, konsisten, dan portabel.
Apa itu LNMP Stack dengan Docker?
LNMP Stack dengan Docker adalah implementasi arsitektur web menggunakan container Docker untuk setiap komponen:
- Linux: Sistem operasi dasar (host)
- Nginx: Web server dalam container
- MySQL: Database server dalam container
- PHP: PHP-FPM dalam container terpisah
Membuat Directory Compose dan File Source Code PHP
Buat sebuah directory untuk digunakan compose dan file source code, yaitu lnmp dan www.
mkdir -p lnmp/www
cd lnmp

Buatk sebuah file index.php berisi function phpinfo(), untuk menguji Web Server Nginx dan PHP.
touch www/index.php
echo “<?php phpinfo(); ?>” > www/index.php

Membuat File Docker Compose
Buat file docker compose untuk deskripsikan docker, fungsi untuk mengotomatiskan pembuatan container seperti Nginx, MariaDB, dan phpMyadmin.
touch docker-compose.yml

Masukan script docker ke dalam file docker-compose.yml, sesuaikan configuration dengan kebutuhan.
services:php-nginx:image: webdevops/php-nginx:8.1-alpineports:– 80:80volumes:– ./www:/appmariadb:image: mariadb:10.6.8volumes:– vol-mariadb:/var/lib/mysqlenvironment:MYSQL_ALLOW_EMPTY_PASSWORD: “no”MYSQL_ROOT_PASSWORD: “PASSWORD_ROOT”MYSQL_USER: “USER”MYSQL_PASSWORD: “PASSWORD_USER”MYSQL_DATABASE: “NAME_DATABASE”phpmyadmin:image: phpmyadmin/phpmyadminlinks:– mariadb:dbports:– 8080:80volumes:vol-mariadb:
Keterangan Docker Compose Versi Simple:
- Membuat container php-nginx yang berbasis image webdevops/php-nginx:8.2-alpine, forward port 80 di host ke port 80 di container, dan mounting direktori www ke /app.
- Membuat container mariadb yang berbasis image mariadb:10.6.8, membuat dan mounting volume vol-mariadb ke /var/www/lib/mysql, dan set environment variabel.
- Membuat container phpmyadmin yang berbasis image phpmyadmin/phpmyadmin, terhubung ke container mariadb, dan forward port 8080 di host ke port 80 di container.
Jalankan perintah dibawah untuk execute file docker compose yang sudah dibuat.
sudo docker compose up -d

Selanjutnya melihat hasil menjalankan file compose dengan perintah sudo docker compose ps, pastikan ada tiga container yaitu: Nginx, MariaDB dan phpMyadmin dengan STATUS Up.

Pengujian Container Nginx, MariadDB dan phpMyadmin
Akses IP Public pada browser http://IP_PUBLIC, pastikan muncul halaman PHP INFO yang sebelumnya kita buat file index.php.

Untuk mengakses phpMyadmin akses pada browser http://IP_PUBLIC:8080, maka akan muncul from login. Masukan username dan password yang sebelumnya di deklarasikan pada file docker compose.

Konfigurasi Docker Compose tersebut memungkinkan kita untuk menyiapkan tumpukan LNMP (Linux, Nginx, MariaDB, PHP) dalam lingkungan container Docker.
Lingkungan ini terdiri dari tiga layanan tercontainerisasi. Layanan php-nginx berperan sebagai web server yang dilengkapi dengan PHP. Layanan mariadb menyediakan fungsi database, sementara phpmyadmin menyajikan antarmuka grafis berbasis web untuk mengelola database pada container MariaDB tersebut.

