Docker Compose untuk FrankenPHP, MySQL, dan PhpMyAdmin
Docker Compose adalah alat yang sangat berguna untuk mengelola aplikasi multi-container. Dalam artikel ini, kita akan membuat sebuah file Docker Compose untuk mengatur FrankenPHP sebagai server web, MySQL sebagai basis data, dan PhpMyAdmin sebagai alat manajemen basis data.
Prasyarat
Sebelum memulai, pastikan Anda telah menginstal:
- Docker
- Docker Compose
Langkah-langkah
1. Struktur Direktori
Buat struktur direktori berikut untuk proyek Anda:
project-folder/
├── docker-compose.yml
├── app/
└── index.php
2. File Docker Compose
Buat file docker-compose.yml
di root folder proyek Anda:
version: '3.9'
services:
frankenphp:
image: dunglas/frankenphp:latest
container_name: frankenphp
volumes:
- ./app:/var/www/html
ports:
- "8080:80"
depends_on:
mysql:
condition: service_healthy
mysql:
image: mysql:8.0
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: frankenphp_db
MYSQL_USER: frankenphp_user
MYSQL_PASSWORD: userpassword
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 3
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
environment:
PMA_HOST: mysql
PMA_USER: frankenphp_user
PMA_PASSWORD: userpassword
ports:
- "8081:80"
depends_on:
mysql:
condition: service_healthy
volumes:
mysql_data:
3. File PHP (index.php)
Buat file index.php
di dalam folder app/
untuk memverifikasi instalasi FrankenPHP:
<?php
phpinfo();
4. Menjalankan Docker Compose
Jalankan perintah berikut di terminal Anda:
docker compose up -d
Perintah ini akan:
- Menjalankan FrankenPHP di port
8080
. - Menjalankan MySQL di port
3306
. - Menjalankan PhpMyAdmin di port
8081
.
5. Mengakses Layanan
- FrankenPHP: Buka browser dan akses
http://localhost:8080
. - PhpMyAdmin: Buka browser dan akses
http://localhost:8081
dengan kredensial berikut:- Server:
mysql
- Username:
frankenphp_user
- Password:
userpassword
- Server:
6. Penghentian Layanan
Untuk menghentikan semua container, gunakan perintah berikut:
docker compose down
Kesimpulan
Dengan menggunakan Docker Compose versi terbaru, Anda dapat dengan mudah mengatur FrankenPHP sebagai server web, MySQL sebagai basis data, dan PhpMyAdmin sebagai alat manajemen. Struktur ini sangat cocok untuk pengembangan aplikasi berbasis PHP modern.