Skip to content

Ubuntu: Setup LAMP Stack with Docker

Halo semuanya kali ini saya akan setup LAMP (Linux Apache MariaDB PHP) menggunakan Docker. Apa itu Docker? Docker adalah platform yang menyediakan kemampuan untuk mengemas aplikasi menjadi sebuah container/image. Keuntungan menggunakan docker yaitu kita tidak perlu repot menyamakan environment seperti sistem operasi, library, dll. Asalkan ada Docker Engine kita hanya perlu menjalankan image/container maka aplikasi tersebut bisa berjalan, dan image yang tersedia juga ringan. Untuk pemahaman lebih lanjut bisa baca disini Docker Overview.

Hal yang perlu disiapkan yaitu Ubuntu disini saya menggunakan versi terbaru yaitu 22.04, bebas bisa menggunakan ubuntu server/desktop.

Pertama, lakukan update repository

ubuntu@web:~$ sudo apt update

Lalu install docker dengan perintah

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh 

Setelah berhasil di install, agar docker bisa dijalankan menggunakan non-root user kita bisa menambahkan user kita ke group docker. Setelah menjalankan perintah ini kita harus logout terlebih dahulu agar penambahan user ke group bisa diterapkan.

sudo usermod -aG docker usernamemu

Agar bisa mengakses image yang ada di registry docker hub, kita harus membuat akun terlebih dahulu

kunjungi Docker Hub kemudian ada form pendaftaran isi sesuai keinginan setelah itu klik Sign-up.

Fungsi docker registry yaitu sebagai tempat penyimpanan image docker, image docker ini yang berisi berbagai macam aplikasi seperti PHP,NodeJS, Django dll. Biasanya image docker berbasis linux yang ringan seperti alpine, ada juga yang berbasis Debian & Ubuntu.

Selanjutnya kita perlu login di terminal dengan perintah

docker login

Kemudian isi username dan password docker hub yang tadi dibuat

Selanjutnya kita install docker-compose, apa itu docker compose? docker compose adalah alat yang bisa kita gunakan untuk menjalankan multi container dengan definisi yang kita inginkan, kita juga bisa membuat container ini saling terkait. Cara installnya cukup mudah yaitu cukup dengan perintah ini

sudo apt install docker-compose -y

Setelah berhasil menginstall docker-compose kita buat direktori untuk manajemen LAMP, untuk letaknya bebas sesuai keinginan, disini saya membuat direktori di home user.

mkdir ~/lamp
cd ~/lamp

Lalu kita buat file dengan teks editor kesukaan, misal nano dengan nama file docker-compose.yml

nano docker-compose.yml

Kita definisikan image yang kita perlukan, contohnya seperti ini:

version: "3.8"
services:  
 webserver:    
    container_name: "webserver"
    image: php:7.4-apache
    restart: always
    volumes:   
      - "./www:/var/www/html/"
      - "./config/php/php.ini:/usr/local/etc/php/php.ini"
    ports:
      - "8080:80"

 mariadb:
    image: mariadb:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ROOTPASSWORD
    volumes:   
      - dbdata:/var/lib/mysql

 phpmyadmin:   
    image: phpmyadmin:latest
    restart: always
    environment:
      PMA_HOST: mariadb
      PMA_USER: root
      PMA_PASSWORD: ROOTPASSWORD
      UPLOAD_LIMIT: 512M
      MEMORY_LIMIT: 512M
    ports:
      - "8081:80"
volumes:
  dbdata:

Di dalam file konfigurasi kita bisa mendefinisikan banyak hal contohnya ports, contoh webserver dengan port 8080:80 berarti kita mengekspose port Host kita yaitu 8080 ke port 80 di container, jadi ketika ingin mengakses container kita menggunakan port 8080.

Kita bisa sesuaikan dengan kebutuhan kita seperti di web server kita menggunakan image php versi 7.4 untuk list image yang bisa digunakan bisa kita cari di Docker Hub. Ketik nama image di pencarian kemudian akan ada banyak list image yang bisa kita pakai

Ada logo hijau berarti image tersebut adalah official dari dockernya, di dalam image ada yang namanya tags berfungsi memberi tanda image dengan versi yang berbeda misal php:7.4-apache ada juga php:alpine3.14 bisa kita pakai sesuai keinginan

Kita bisa memasukkan file yang ada di linux ke container, misal menambahkan file php.ini dan diarahkan ke lokasi php.ini di container.

Berikut konfigurasi yang saya lakukan:

mkdir www
echo "<?php phpinfo(); ?>" > www/index.php

mkdir config/php ##Direktori konfigurasi

nano config/php/php.ini
memory_limit = 256M
post_max_size = 100M
upload_max_filesize = 100M
  1. Membuat folder www untuk penempatan file index.php yang di pasang ke container
  2. Membuat file index.php sederhana yaitu menampilkan versi php dengan phpinfo();
  3. Membuat folder config untuk php.ini
  4. Konfigurasi php.ini berisi memory_limit dll.

Setelah itu jalankan docker compose

docker-compose up -d

-d berarti kita jalankan container yang kita definisikan tadi secara background

Setelah perintah dijalankan maka secara otomatis docker akan mendownload image yang dibutuhkan dan menjalankan konfigurasi sesusai file docker-compose.yml

Untuk melihat container sudah jalan atau belum bisa menggunakan perintah

docker ps

Kita langsung saja coba akses melalui browser, dan taraa web php kita berhasil diakses

Lalu coba juga Akses ke PHPMyAdmin dengan port 8081, dan berhasil juga

Sekian dari saya, Selamat Mencoba!!

Referensi konfigurasi docker-compose yang siap pakai:

https://github.com/sprintcube/docker-compose-lamp.git

Published inUbuntu

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *