Panduan Instalasi Docker Compose untuk Multi PHP Version dan MySQL di Ubuntu
Mozunote.com Docker Compose adalah alat yang kuat untuk mengelola aplikasi multi-container di lingkungan Docker. Dengan menggunakan Docker Compose, Anda dapat dengan mudah menyatukan beberapa layanan seperti aplikasi web PHP dan database MySQL dalam satu konfigurasi yang dapat dijalankan dengan mudah di berbagai lingkungan.
Dalam tutorial ini, kita akan mengatur lingkungan Docker Compose untuk menjalankan dua aplikasi web PHP yang berbeda (masing-masing dengan PHP 7.4 dan PHP 8.0) serta MySQL sebagai database. Setiap aplikasi akan memiliki versi PHP dan database MySQL yang terpisah untuk isolasi yang lebih baik.
Langkah 1: Persiapkan Lingkungan
Instalasi Docker dan Docker Compose
Pastikan Docker dan Docker Compose sudah terinstal di sistem Ubuntu Anda. Jika belum, ikuti langkah-langkah instalasi berikut:
Instal Docker:
sudo apt update sudo apt install -y docker.io sudo systemctl start docker sudo systemctl enable docker
Instal Docker Compose:
sudo apt install -y docker-compose
Buat Struktur Proyek
Buat direktori untuk proyek Docker Compose Anda dan masuk ke dalamnya:
mkdir multi-php-project cd multi-php-project
Langkah 2: Konfigurasi Docker Compose
Buat File
docker-compose.yml
Buat file
docker-compose.yml
di dalam direktorimulti-php-project
dan konfigurasikan layanan aplikasi PHP dan MySQL:version: '3.8' services: app1: build: ./app1 container_name: multi-php-project-app1 volumes: - ./app1/src:/var/www/html ports: - "8081:80" links: - mysql1 app2: build: ./app2 container_name: multi-php-project-app2 volumes: - ./app2/src:/var/www/html ports: - "8082:80" links: - mysql2 mysql1: image: mysql:5.7 container_name: multi-php-project-mysql1 environment: MYSQL_ROOT_PASSWORD: your_mysql_root_password MYSQL_DATABASE: your_database_name1 MYSQL_USER: your_mysql_user1 MYSQL_PASSWORD: your_mysql_password1 ports: - "33061:3306" mysql2: image: mysql:5.7 container_name: multi-php-project-mysql2 environment: MYSQL_ROOT_PASSWORD: your_mysql_root_password MYSQL_DATABASE: your_database_name2 MYSQL_USER: your_mysql_user2 MYSQL_PASSWORD: your_mysql_password2 ports: - "33062:3306"
- Gantilah
your_mysql_root_password
,your_database_name1
,your_mysql_user1
, danyour_mysql_password1
dengan nilai yang sesuai untukmysql1
. - Lakukan hal yang sama untuk
mysql2
menggunakan nilai yang sesuai untukyour_database_name2
,your_mysql_user2
, danyour_mysql_password2
.
Langkah 3: Buat Konfigurasi Aplikasi PHP
Buat Direktori untuk Aplikasi PHP
Di dalam direktori proyek (
multi-php-project
), buat subdirektori untuk setiap aplikasi PHP. Misalnya,app1
danapp2
.mkdir app1 app2
Konfigurasi Dockerfile untuk Setiap Aplikasi PHP
Di dalam setiap direktori aplikasi (
app1
danapp2
), buat Dockerfile untuk mengonfigurasi lingkungan PHP.Contoh Dockerfile untuk
app1
:# Use the official PHP 7.4 Apache base image FROM php:7.4-apache # Copy the application files to the container's web root COPY src/ /var/www/html/ # Install unzip and other dependencies RUN apt-get update && apt-get install -y \ unzip \ && rm -rf /var/lib/apt/lists/*
Contoh Dockerfile untuk
app2
:# Use the official PHP 8.0 Apache base image FROM php:8.0-apache # Copy the application files to the container's web root COPY src/ /var/www/html/ # Install unzip and other dependencies RUN apt-get update && apt-get install -y \ unzip \ && rm -rf /var/lib/apt/lists/*
- Pastikan untuk menyesuaikan
FROM php:7.4-apache
danFROM php:8.0-apache
sesuai dengan versi PHP yang Anda inginkan untuk masing-masing aplikasi.
Langkah 4: Bangun dan Jalankan Aplikasi
Bangun dan Jalankan Aplikasi Menggunakan Docker Compose
Kembali ke direktori
multi-php-project
dan jalankan Docker Compose untuk membangun dan menjalankan semua layanan:sudo docker-compose up -d
- Opsi
-d
digunakan untuk menjalankan kontainer di latar belakang.
- Opsi
Verifikasi Kontainer
Periksa status kontainer untuk memastikan semua layanan berjalan dengan benar:
sudo docker-compose ps
Akses Aplikasi melalui Browser
- Untuk mengakses
app1
(PHP 7.4), bukahttp://localhost:8081
. - Untuk mengakses
app2
(PHP 8.0), bukahttp://localhost:8082
.
Langkah 5: Akses MySQL dan PHPMyAdmin
Akses PHPMyAdmin
Jika Anda ingin mengakses MySQL menggunakan PHPMyAdmin, tambahkan konfigurasi PHPMyAdmin ke dalam
docker-compose.yml
:version: '3.8' services: ... phpmyadmin1: image: phpmyadmin/phpmyadmin container_name: multi-php-project-phpmyadmin1 environment: PMA_HOST: mysql1 MYSQL_ROOT_PASSWORD: your_mysql_root_password ports: - "8083:80" phpmyadmin2: image: phpmyadmin/phpmyadmin container_name: multi-php-project-phpmyadmin2 environment: PMA_HOST: mysql2 MYSQL_ROOT_PASSWORD: your_mysql_root_password ports: - "8084:80"
- Gantilah
your_mysql_root_password
dengan kata sandi root MySQL yang sesuai.
- Gantilah
Akses PHPMyAdmin dari Browser
- Untuk PHP 7.4 dan MySQL 5.7, buka
http://localhost:8083
. - Untuk PHP 8.0 dan MySQL 5.7, buka
http://localhost:8084
.
Langkah 6: Mengelola Kontainer
Menghentikan dan Menghapus Kontainer
Untuk menghentikan dan menghapus semua kontainer yang dijalankan oleh Docker Compose, jalankan perintah berikut:
sudo docker-compose down
- Perintah ini akan menghentikan semua kontainer yang berjalan dan menghapus jaringan default yang dibuat oleh Docker Compose.
Kesimpulan
Dengan mengikuti tutorial ini, Anda telah berhasil mengatur lingkungan Docker Compose untuk menjalankan dua aplikasi web PHP dengan versi PHP yang berbeda serta MySQL sebagai database. Penggunaan Docker Compose mempermudah pengelolaan dan pengembangan aplikasi yang membutuhkan lingkungan yang terisolasi dan bersih. Pastikan untuk mengonfigurasi dan menjalankan setiap langkah dengan hati-hati sesuai dengan kebutuhan proyek Anda.