ขึ้น WordPress อย่างรวดเร็วและง่ายดายด้วย Docker Compose

Anuwong Mongkudkornburee
2 min readJun 14, 2020

ทุกวันนี้อะไร ๆ ก็ต้อง Containerization อะเนอะ เพราะมันเร็วและง่ายมาก เขียน dockerfile หรือ docker-compose.yml ครั้งเดียวก็เอาไปรันที่ไหนก็ได้ จะบน local machine หรือบน vps อย่าง digitalocean droplet ก็ได้ config เหมือน ๆ กัน ไม่ต้องปวดหัวกับประเด็น เครื่องผมรันได้ ทำไมบนเซิฟเวอร์รันไม่ได้

และวันนี้เราก็จะมาสร้าง Wordpress ด้วยเทคนิก Dockerization ที่ว่านี่แหละ เนื่องจาก Wordpress เองก็รันอยู่บนเทคโนโลยีหลาย ๆ ตัว ดังนั้นเราจึงจะใช้ท่า Docker-compose กัน จะได้จัดการเรื่อง docker network ได้ง่าย ๆ (เรียกว่าไม่ต้องจัดการง่ายกว่า) เอาล่ะ มาลุยกันเลย

สำหรับมือใหม่ที่ยังไม่รู้จัก Docker
อ่านบทความนี้ก่อนนะครับ — บันทึกนักพัฒนา: Docker Container 101 แล้วเราจะคิดถึงนายนะ WAMP, XAMPP, …Siwawes Wongcharoen

Wordpress developer is developing his site
Photo by Fikret tozak on Unsplash

ก่อนอื่นติดตั้ง docker กันก่อนนะครับ

[Docker-101#1] เริ่มหัดใช้ Docker บน Windows 10 แบบง่ายๆ ได้ยังไง?Supachai Jaturaprom
ติดตั้ง Docker ฉบับโหลดปั๊ปเปิดปุ๊ป!!Thepnatee Phojan

จากนั้นสร้าง directory/folder สำหรับเก็บ asset ต่าง ๆ ที่จะเอาไว้ใช้พัฒนา wordpress แล้วเขียนไฟล์ docker-compose.yml ไว้ในนั้นเลย แล้ว copy code ด้านล่างนี้ไปใส่

version: "3.3"services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}

จากนั้นรันคำสั่ง docker-compose up -d เพื่อรัน docker ตาม config ของ docker-compose.yml ซึ่งหากยังไม่เคยโหลด image ของ wordpress หรือ mysql อาจจะต้องรอสักพัก

รอจนกว่า docker จะขึ้น container ของทั้ง wordpress และ mysql สำเร็จ

จากนั้นเปิด Browser ขึ้นมาแล้วไปที่ localhost:8000 กันเล้ย

ได้ wordpress มาใช้แล้ว อย่างง่าย

แถ่นแท๊นนนนนน ได้ Wordpress site มาแล้ว 1 site อย่างง่าย แค่ก๊อปโค้ดไฟล์เดียวแล้วก็รัน command เดียวก็ได้เวิร์ดเพรสไว้ใช้งานเลย สุดยอดมั้ยล่ะ อิอิ

ทีนี้เรามาดู docker-compose.yml กันดีกว่า ว่าแต่ละ tag มันคืออะไรยังไงบ้าง (คร่าว ๆ พอ)

services: บอกว่า docker-compose file นี้จะมีเซอร์วิสอะไรรันบ้างdb: และ wordpress: คือชื่อเซอร์วิสที่เราจะรัน จะเริ่ม config หลังจากนี้image: wordpress:latest บอก docker ว่าเซอร์วิสนี้จะใช้ image อะไรรัน หลัง : คือ tag ของ image นั้นๆ ใช้สำหรับระบุเวอร์ชันของ image ในที่นี้ใช้เวอร์ชั่นล่าสุดports: - "8000:80" ให้ docker ทำการ expose port 80 ของ container ออกมาเป็น port 8000 ของ machine (ให้เราสามารถเข้าถึง application ที่รันอยู่ภายใน container ได้)

เพียงเท่านี้ เราก็จะสามารถนำไฟล์ docker-compose.yml ไปรันที่ไหนก็ได้ที่มี docker engine และ docker-compose ได้ทั้ง reliability, agility และ compatibility

อันนี้เป็นเพียงตัวอย่างแบบง่าย ๆ เท่านั้น ในการใช้งานจริง ๆ อาจจะต้องมีการปรับแต่งนู่นนี่นั่น เช่น อยากใช้ FastCGI ก็อาจจะต้องเปลี่ยนไปใช้ wordpress:php-fpm แล้วเพิ่ม reverse proxy เพื่อมารับ load แล้ว proxy ไปยัง wordpress อีกทีนึง อะไรประมานนี้ ไว้มีโอกาสจะมาแสดงตัวอย่างให้ดูกันครับ

ขออนุญาตแปะ Affiliate ครับ อิอิ 😄

Get free $100 on DigitalOcean with my referral

--

--

Anuwong Mongkudkornburee

สวัสดีคร้าบ ท่านสมาชิกชมรมคนชอบ “เว็บ”