Sebelumnya kita membahas artikel Memasang WordPress dengan Docker Compose. Sekarang kita akan kembali mengupasnya dengan bereksperimen menggunakan base Alpine Linux.
Mengapa Base Alpine Linux?

Kamu bisa lihat Docker Image berbasis Alpine Linux lebih kecil daripada Docker Image resmi dari pengembangnya. Misalnya MariaDB versi Alpine memiliki ukuran rendah daripada MariaDB versi pengembangnya.
Jika bisa ukuran kecil, mengapa harus besar? Dengan minimalis, kamu menghemat proses pengunduhan, penyimpanan, dan pembangunan Dockerfile.

Inilah hasil docker stats yang menggunakan image berbasis Alpine Linux. Cukup ringan, bukan?
Memasang WordPress di Docker Alpine Linux
Pertama kita buat folder agar susunan lebih rapi.
$ mkdir wordpress-docker-alpine-linux
$ cd wordpress-docker-alpine-linux
Kita buat berkas “docker-compose.yml“
$ vim docker-compose.yml
version: "3"
services:
nginx:
image: docker.io/nginx:alpine
restart: unless-stopped
ports:
- ${WORDPRESS_PORT}:8000
- ${PHPMYADMIN_PORT}:8001
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./wordpress:/var/www/html:ro
- phpmyadmin:/var/www/phpmyadmin:ro
wordpress:
image: docker.io/wordpress:fpm-alpine
restart: unless-stopped
depends_on:
- mariadb
environment:
WORDPRESS_DB_HOST: mariadb
WORDPRESS_DB_USER: ${MYSQL_USER}
WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}
WORDPRESS_DB_NAME: ${MYSQL_DATABASE}
volumes:
- ./wordpress:/var/www/html
ftp:
image: docker.io/delfer/alpine-ftp-server
restart: unless-stopped
depends_on:
- wordpress
environment:
USERS: "${FTP_USER}|${FTP_PASSWORD}|/var/www/html/wp-content"
ADDRESS: ftp
volumes:
- ./wordpress:/var/www/html
mariadb:
image: ghcr.io/linuxserver/mariadb:alpine
restart: unless-stopped
environment:
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
volumes:
- ./mariadb:/config/databases
phpmyadmin:
image: docker.io/phpmyadmin:fpm-alpine
restart: unless-stopped
depends_on:
- mariadb
volumes:
- phpmyadmin:/var/www/html
environment:
PMA_HOST: mariadb
volumes:
phpmyadmin:
Code language: JavaScript (javascript)
Buat folder “nginx” dan isi dengan konfigurasi “nginx.conf“
$ mkdir nginx
$ cd nginx
$ vim nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
server {
listen 8000;
root /var/www/html/;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass wordpress:9000;
fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
}
}
server {
listen 8001;
root /var/www/phpmyadmin/;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass phpmyadmin:9000;
fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
}
}
}
Code language: PHP (php)
Buat juga berkas “.env” di folder awal.
$ vim .env
WORDPRESS_PORT=8000
PHPMYADMIN_PORT=8001
MYSQL_DATABASE=wordpress
MYSQL_USER=wordpress
MYSQL_PASSWORD=lOb2JfxFnuZGDM1rd3EPwMtjZjPAEka8
MYSQL_ROOT_PASSWORD=JrrmdCOp0jSy7oXna5TATfEdgY8Z8VKC
FTP_USER=wordpress
FTP_PASSWORD=8jcbAeCYzhfCplfDyhX6UPO1Stjp9s8t
Setelah itu kita jalankan “docker-compose up -d” di terminal.
$ docker-compose up -d
Leave a Reply