PHP12 Jan 2025

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.

Ahmad Sanusi

Ahmad Sanusi

2 min read · 2,180 views

Docker Compose untuk FrankenPHP, MySQL, dan PhpMyAdmin

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:

  1. Menjalankan FrankenPHP di port 8080.
  2. Menjalankan MySQL di port 3306.
  3. 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

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.

Ahmad Sanusi

Written by

Ahmad Sanusi

Senior Full-Stack Developer with 15+ years of experience in building scalable digital solutions.

Responses

No responses yet. Be the first to share your thoughts.

All articles