Hot!

Kumpulan Semua Artikel

Campuran Semua Kategori Artikel

Tutorial Instalasi Docker Composer Multi PHP Version MYSQL di Server Ubuntu


Panduan Instalasi Docker Compose untuk Multi PHP Version dan MySQL di Ubuntu

mozunote.com-Tutorial Instalasi Docker Composer  Multi PHP Version MYSQL di Server 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

  1. 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
  2. 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

  1. Buat File docker-compose.yml

    Buat file docker-compose.yml di dalam direktori multi-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, dan your_mysql_password1 dengan nilai yang sesuai untuk mysql1.
    • Lakukan hal yang sama untuk mysql2 menggunakan nilai yang sesuai untuk your_database_name2, your_mysql_user2, dan your_mysql_password2.

Langkah 3: Buat Konfigurasi Aplikasi PHP

  1. Buat Direktori untuk Aplikasi PHP

    Di dalam direktori proyek (multi-php-project), buat subdirektori untuk setiap aplikasi PHP. Misalnya, app1 dan app2.


    mkdir app1 app2
  2. Konfigurasi Dockerfile untuk Setiap Aplikasi PHP

    Di dalam setiap direktori aplikasi (app1 dan app2), 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 dan FROM php:8.0-apache sesuai dengan versi PHP yang Anda inginkan untuk masing-masing aplikasi.

Langkah 4: Bangun dan Jalankan Aplikasi

  1. 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.
  2. Verifikasi Kontainer

    Periksa status kontainer untuk memastikan semua layanan berjalan dengan benar:


    sudo docker-compose ps
  3. Akses Aplikasi melalui Browser

    • Untuk mengakses app1 (PHP 7.4), buka http://localhost:8081.
    • Untuk mengakses app2 (PHP 8.0), buka http://localhost:8082.

Langkah 5: Akses MySQL dan PHPMyAdmin

  1. 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.
  2. 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

  1. 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.