Pada tutorial sebelumnya kita telah belajar membuat aplikasi PHP dengan Docker. Di tutorial ini kita akan belajar menggunakan Docker yang lebih spesifik, yaitu membuat website WordPress. Dengan Docker kita dapat membuat WordPres lebih cepat dan juga lebih mudah. Selain itu bisa berganti versi WordPress dan PHP dengan mudah. Tanpa harus install banyak versi PHP di komputer. Video untuk tutorial ini dapat di akses di channel Youtube MyPHPtutorials.
Video tutorial Membuat WordPress dengan Docker
Untuk membuat website WordPress dengan Docker, kita bisa menggunakan docker official image untuk WordPress yang bisa diakses dari https://hub.docker.com/ dan cari wordpress
. Kita akan menggunakan versi terbaru saat ini, yaitu versi 6, dengan php 8.0 dan server apache. Untuk kita kita akan gunakan tag 6-php8.0-apache
. Pada tutorial docker sebelumnya kita memiliki file docker-compose.yml
seperti di bawah.
version: '3'
services:
php:
build: .
ports:
- "8888:80"
volumes:
- ./src:/var/www/html
depends_on:
- database
database:
image: mysql:8
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_PASSWORD: change_me
MYSQL_DATABASE: tutorials
MYSQL_USER: tutorials_user
MYSQL_PASSWORD: change_me
volumes:
- database:/var/lib/mysql
phpmyadmin:
image: phpmyadmin
ports:
- 8080:80
environment:
- PMA_ARBITRARY=1
depends_on:
- database
volumes:
database:
Service php
di atas akan kita ganti menggunakan wordpress seperti di bawah:
wordpress:
image: wordpress:6-php8.0-apache
environment:
- WORDPRESS_DB_HOST=database
- WORDPRESS_DB_USER=wordpress
- WORDPRESS_DB_PASSWORD=change_me
- WORDPRESS_DB_NAME=wordpress
ports:
- 8889:80
depends_on:
- database
volumes:
- ./themes:/var/www/html/wp-content/themes/
- ./plugins:/var/www/html/wp-content/plugins/
Pada bagian enviroment
kita menambahkan empat variabel, yaitu WORDPRESS_DB_HOST
untuk alamat databasenya, yaitu database
sesuai dengan file docker-compose.yml di atas. Kemudian WORDPRESS_DB_USER
untuk username yang digunakan untuk akses database, WORDPRESS_DB_PASSWORD
password database, dan WORDPRESS_DB_NAME
nama database yang digunakan.
Lalu di bagian volumes
kita membuat dua volume, satu untuk menambahkan plugin di folder plugins
dan satu lagi untuk menambahkan tema di folder themes
. Setelah itu kita bisa menjalankan website WordPress ini menggunakan docker compose up -d
. Lalu buka browser di http://localhost:8889 dan halaman instalasi WordRress akan terbuka. Selesaikan proses install, kemudian untuk menambahkan tema baru tambahkan ke folder themes
dan untuk menambahkan plugin baru tambahkan di folder plugins
. Untuk lebih jelas, di video tutorial dicontohkan cara untuk menambahkan plugin Contact Form 7 dan tema Twenty Seventeen.
Setelah selesai melakukan modifikasi dan konfigurasi untuk website WordPressnya kita bisa lanjut untuk membuat Docker image untuk produksi. Buat file Dockerfile seperti di bawah.
FROM wordpress:6-php8.0-apache
COPY plugins/contact-form-7/ /usr/src/wordpress/wp-content/plugins/contact-form-7/
COPY themes/twentyseventeen/ /usr/src/wordpress/wp-content/themes/twentyseventeen/
folder plugins dan themes dicopy ke folder /usr/src/wordpress/wp-content/
bukan ke folder /var/www/html/wp-content/
. Kemudian build imagenya menggunakan nama docker-wordpress
misalnya, docker build -t docker-wordpress -f Dockerfile .
. Docker image docker-wordpress
siap dibagikan untuk production. Kemudian database yang digunakan tadi perlu diexport menjadi file sql dan diimport di tempat production juga. Caranya juga dicontohkan di video tutorial.