Membuat Website WordPress Lebih Cepat Dengan Docker

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

Membuat WordPress dengan Docker

Docker Compose untuk Development

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.

Dockerfile untuk Production

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.