Cerita Raka dan Perjalanan Instalasi WordPress dengan Docker di Komputernya

Cerita Raka dan Perjalanan Instalasi WordPress dengan Docker di Komputernya

Raka adalah seorang developer yang ingin belajar WordPress di komputer lokalnya menggunakan Docker supaya instalasinya mudah dan rapi. Namun, perjalanannya tidak semulus yang dia bayangkan. Berikut ceritanya.

Mulai Perjuangan: Mengecek Docker

Suatu hari, Raka duduk di depan komputernya dan mengetik:

sudo systemctl status docker

Tapi, Docker ternyata tidak berjalan. Dia coba start dengan:

sudo systemctl start docker

Namun, tiba-tiba muncul error aneh:

failed to dial "/run/containerd/containerd.sock": timeout

Raka bingung, kenapa Docker gak bisa jalan?

Misteri containerd yang Ter-mask

Raka mencari tahu lebih dalam dan menjalankan:

sudo systemctl status containerd

Dan ternyata hasilnya:

Unit containerd.service is masked.

“Apa itu maksudnya, ya?” pikir Raka.

Ternyata, service containerd, yang diperlukan Docker untuk berjalan, sengaja di-disable alias masked.

Raka pun menjalankan perintah berikut untuk mengaktifkannya:

sudo systemctl unmask containerd
sudo systemctl enable containerd
sudo systemctl start containerd

Setelah itu, dia coba lagi start Docker:

sudo systemctl restart docker
sudo systemctl status docker

Syukurlah, Docker sekarang sudah jalan!

Memulai Instalasi WordPress dengan Docker

Raka sudah siap install WordPress lokal dengan Docker. Dia tahu WordPress butuh database MySQL, jadi dia mulai dengan menjalankan container MySQL:

docker run -d --name mysql-server \
  -e MYSQL_ROOT_PASSWORD=rootpassword \
  -e MYSQL_DATABASE=wordpress \
  -e MYSQL_USER=wpuser \
  -e MYSQL_PASSWORD=wppassword \
  -p 3306:3306 \
  mysql:5.7

Kemudian, Raka menjalankan WordPress container yang terhubung ke MySQL tadi:

docker run -d --name wordpress-site \
  --link mysql-server:mysql \
  -p 8080:80 \
  -e WORDPRESS_DB_HOST=mysql:3306 \
  -e WORDPRESS_DB_USER=wpuser \
  -e WORDPRESS_DB_PASSWORD=wppassword \
  -e WORDPRESS_DB_NAME=wordpress \
  wordpress:latest

Dia membuka browser dan mengetik:

http://localhost:8080

“Wow, WordPress berhasil jalan!” seru Raka.

Membuat Hidup Raka Lebih Mudah: Skrip Otomatis

Raka merasa capek ketik panjang-panjang perintah itu setiap kali instalasi. Akhirnya, dia membuat skrip install-wp.sh supaya tinggal klik dan jalan:

#!/bin/bash

echo "Menjalankan MySQL container..."
docker run -d --name mysql-server \
  -e MYSQL_ROOT_PASSWORD=rootpassword \
  -e MYSQL_DATABASE=wordpress \
  -e MYSQL_USER=wpuser \
  -e MYSQL_PASSWORD=wppassword \
  -p 3306:3306 \
  mysql:5.7

echo "Menjalankan WordPress container..."
docker run -d --name wordpress-site \
  --link mysql-server:mysql \
  -p 8080:80 \
  -e WORDPRESS_DB_HOST=mysql:3306 \
  -e WORDPRESS_DB_USER=wpuser \
  -e WORDPRESS_DB_PASSWORD=wppassword \
  -e WORDPRESS_DB_NAME=wordpress \
  wordpress:latest

echo "WordPress dan MySQL sudah berjalan!"
echo "Buka http://localhost:8080 untuk mulai setup WordPress."

Dia menjalankan skrip itu dan semuanya berjalan mulus.

Edit WordPress Secara Real-time

Raka ingin juga bisa edit file WordPress secara langsung tanpa masuk ke container. Maka dia menjalankan WordPress dengan volume mount:

docker run -d --name wordpress-site \
  --link mysql-server:mysql \
  -p 8080:80 \
  -v /home/raka/wp:/var/www/html \
  -e WORDPRESS_DB_HOST=mysql:3306 \
  -e WORDPRESS_DB_USER=wpuser \
  -e WORDPRESS_DB_PASSWORD=wppassword \
  -e WORDPRESS_DB_NAME=wordpress \
  wordpress:latest

Sekarang, Raka bisa edit file WordPress di folder lokal /home/raka/wp dan perubahan langsung terlihat di browser.

Penutup

Dengan sedikit perjuangan, Raka akhirnya berhasil instal WordPress lokal dengan Docker. Dia belajar juga bagaimana cara mengatasi error Docker dan containerd yang masked, serta bagaimana mengotomasi instalasi supaya lebih cepat dan efisien.

Kalau kamu juga seperti Raka, tinggal ikuti langkah ini dan jangan takut kalau ada error. Semua bisa diatasi! Kalau butuh bantuan, tanya saja ya.

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *