Fix Set Up Docker PHP, Nginx, Mysql, PHPMYADMIN
docker dan docker compose setup untuk membangun web server - Docker telah mempermudah proses scaling aplikasi dan bisa digunakan di dalam proses development maupun deployment. Artikel kali ini akan membahas tentang langkah-langkah membangun web server sendiri seperti XAMPP, LAMP, atau MAMP dengan docker.
1. Struktur Folder
Berikut ini adalah struktur folder web server yang kita beri nama localapp.
2. Set up Docker Compose File
/docker-compose.yaml
# Mendefinisikan Versi Docker Compose
version: '3.8'
# Mendefinisikan Voulmes
volumes:
# Untuk Menyimpan Seluruh Data Dalam Database
localdb:
# Mendefinisikan Networks
networks:
# Untuk Mengkoneksikan Antar Services
localapp:
# Mendefinisikan Services Yang Akan Dipakai
services:
# Nama Service Untuk Web Server (nginx)
nginx:
# Gunakan Image Nginx Tag Alpine
image: nginx:alpine
# Kaitkan Folder Lokal Ke Container
volumes:
# Folder Web
- "./htdocs:/var/www"
# Folder Konfigurasi Nginx
- "./.build/nginx/conf.d:/etc/nginx/conf.d"
# Ekspose Port
ports:
# 80 (http://localhost)
- "80:80"
# Jalankan Nginx Jika Service php Dan db Sudah Berjalan
depends_on:
- php
- db
# Koneksikan Ke Network localapp
networks:
- localapp
# Nama Service Untuk PHP
php:
# Build Image Dengan Dockerfile Di Folder ./.build/php
build: ./.build/php
# Kaitkan Folder Lokal Ke Container
volumes:
# Jalankan PHP Di Semua Folder Web
- "./htdocs:/var/www"
# Koneksikan Ke Network localapp
networks:
- localapp
# Nama Service Untuk Database
db:
# Gunakan Image mysql Tag latest
image: mysql:latest
# Environment Yang Dibutuhkan mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_PASSWORD: secret
MYSQL_USER: homestead
# Expose Port Agar Dapat Diakses Melalui Aplikasi MYSQL Client (phpmyadmin)
ports:
- "3306:3306"
# Simpan Semua Data Dalam Volumes localdb
volumes:
- "localdb:/var/lib/mysql"
# Koneksikan Ke Network localapp
networks:
- localapp
# Nama Service Untuk PHPMYADMIN
phpmyadmin:
# Gunakan Image phpmyadmin
image: phpmyadmin/phpmyadmin
# Expose Port
ports:
# Gunakan Port 8081 Untuk Mengakses phpmyadmin
- "8081:80"
# Koneksikan Ke Network localapp
networks:
- localapp
3. Set up Nginx Config
/.build/nginx/conf.d/localapp.conf
server {
listen 80;
index index.php index.html;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
gzip_static on;
}
}
4. Buat image PHP
/.build/php/Dockerfile
FROM php:7.4-fpm
RUN docker-php-ext-install mysqli
5. Jalankan Aplikasi
docker-compose up --build
Seluruh kode set up ini bisa kalian clone/unduh secara gratis melalui link ini: Docker Web Server Fix Set Up
Oke, itulah cara membangun web server dengan fix set up di docker. Semoga artikel ini bisa membantu kalian paham tentang docker dan bisa memudahkan kalian meng-improve web server kalian sendiri seperti menambah bahasa perl, python, atau install composer di dalam container misalnya. Semua itu bisa dilakukan hanya dengan membuat service baru di docker-compose.
Terima Kasih!
Post a Comment for "Fix Set Up Docker PHP, Nginx, Mysql, PHPMYADMIN"