มาใช้ Docker ในการติดตั้ง WordPress กันเถอะ

Chalermchai Prompunya
Artisan Digital
Published in
4 min readMay 13, 2018

ปัจจุบันคงปฏิเสธไม่ได้ว่า ไปที่ไหนหรืออ่านบทความจากไหนจะเจอคำว่า Docker อยู่บ่อย ๆ และบทความนี้เราจะมาติดตั้ง WordPress ด้วย Docker กัน

บทความนี้เป็น Docker on Ubuntu จึงเริ่มจากการตรวจสอบก่อนว่าหากจะใช้ Docker on Ubuntu ได้นั้นจะต้องใช้ Ubuntu เวอร์ชั่นอะไร

OS requirements

To install Docker CE, you need the 64-bit version of one of these Ubuntu versions:

  • Artful 17.10 (Docker CE 17.11 Edge and higher only)
  • Xenial 16.04 (LTS)
  • Trusty 14.04 (LTS)

OS ของเครื่องที่ใช้เขียนบทความนี้เป็น Ubuntu Xenial 16.04 (LTS) เมื่อ OS เราตรงกับเอกสารก็เริ่มติดตั้ง Docker CE( Docker Community Edition ) กันได้เลย

Installing Docker

The Docker installation package available in the official Ubuntu 16.04 repository may not be the latest version. To get the latest and greatest version, install Docker from the official Docker repository. This section shows you how to do just that.

First, add the GPG key for the official Docker repository to the system:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Add the Docker repository to APT sources:

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Next, update the package database with the Docker packages from the newly added repo:

$ sudo apt-get update

Finally, install Docker:

$ sudo apt-get install -y docker-ce

เมื่อติดตั้ง Docker CE เรียบร้อยแล้วก็ตรวจสอบเวอร์ชั่นของ Docker ด้วยคำสั่ง

$ docker version

ก็จะได้หน้าตาออกมาประมาณนี้

ต่อไปติดตั้ง Docker Composer เพื่อให้เราสามารถติดตั้ง WordPress ด้วยคำสั่งเดียว ถ้าหากเราไม่ติดตั้ง Docker Composer เราจะต้องใช้คำสั่ง docker run ตลอดซึ่งจะทำให้เสียเวลามากกว่านำมาแก้ไขปัญหา

Install Compose on Linux systems

Run this command to download the latest version of Docker Compose:

sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

Apply executable permissions to the binary:

sudo chmod +x /usr/local/bin/docker-compose

Test the installation.

$ docker-compose --version

เมื่อติดตั้ง Docker Composer เรียบร้อยแล้ว ก็จะแสดงเวอร์ชั่นของ Docker Composer ที่เราติดตั้งเอาไว้

ก่อนสร้างไฟล์ docker-compose.yml ต้องรู้ก่อนว่าเราต้องการอะไรบ้างในการจัดการกับ WordPress

  • โฟลเดอร์ wp-content ของ WordPress ซึ่งมีทั้ง Plugin และ Themes อยู่ในนั้น
  • phpMyAdmin สำหรับจัดการกับ Database หรือ ทดสอบ Query คำสั่ง MySQL

เริ่มสร้างไฟล์ docker-compose.yml ไว้ในโฟล์เดอร์ ‘wptest’

$ mkdir wptest
$ cd wptest/
$ touch docker-compose.yml

ตั้งค่าไฟล์ docker-compose.yml ตามคำสั่งด้านล่างนี้

อธิบายเพิ่มเติม

  • depend_on คือสั่งให้ service นั้น ๆ เริ่มต้นการทำงานหลังจาก service ที่ depend on อยู่เริ่มต้นการทำงานเสร็จแล้ว
  • image คือ การใช้ image จาก Docker Hub
  • container_name คือ ชื่อของ container ที่กำลังสร้าง
  • restart: alway คือ กำหนดให้ service นั้น restart ตัวเองอัตโนมัติเมื่อเกิดข้อผิดพลาดที่ทำให้โปรแกรมหยุดการทำงานไป หรือสั่งให้เริ่มต้นทำงานอัตโนมัติเมื่อเปิดเครื่องขึ้นมาใหม่
  • environment คือ ตั้งค่า environment ภายใน container
  • volumes คือ เชื่อม โฟลเดอร์ หรือ ไฟล์ จากภายนอก และ ภายใน container เข้าด้วยกัน
  • ports คือ port ที่ไว้สำหรับเรียกใช้ service ปัจจุบัน
  • networks คือ ตั้งค่า network ของ service

สำหรับ WordPress แล้วสิ่งที่เราต้องการหลัก ๆ คือ โฟว์เดอร์ wp-content ที่สามารถจัดการ Plugin และ Themes ได้ จะมีทั้งเขียน Plugin เสียบเพิ่มเข้าไป และเขียน function.php ของธีมที่ใช้ จึงเพิ่ม volumes ในส่วนของ Images ไฟล์ของ WordPress ให้สามารถเชื่อมโฟลเดอร์ wp-content ที่เครื่อง local และภายใน container ได้

เริ่มติดตั้ง WordPress ด้วย Docker Composer ด้วยคำสั่ง

$ docker-compose up -d

เมื่อรันคำสั่งเรียบร้อยไม่ติดปัญหาอะไรเราก็จะได้โฟลเดอร์ wp-content เข้ามาอยู่ในโฟล์เดอร์ของ wptest เรียบร้อย

ทดสอบเปิดเว็บไซต์ที่ติดตั้งจาก Docker Composer ด้วยการเปิดเว็บไซต์ด้วย http://localhost:8585/ เราก็จะได้หน้าตาการติดตั้ง WordPress มาเป็นที่เรียบร้อย

เมื่อกด Continue เราก็จะเข้าสู่หน้าตาของการตั้งค่าการใช้งานเว็บไซต์ได้เลย ไม่ต้องตั้งค่าการเชื่อมต่อฐานข้อมูล ซึ่งตรงนี้สามารถข้ามขั้นตอนไปได้หนึ่งขั้นตอนคือ โดยปกติแล้ว WordPress จะต้องตั้งค่าการเชื่อมต่อกับฐานข้อมูลก่อน เมื่อเชื่อมต่อเรียบร้อยแล้ว ถึงจะไปขั้นตอนของการตั้งค่าการใช้งานเว็บไซต์

ทดสอบติดตั้ง Plugin เพื่อตรวจสอบว่าโฟล์เดอร์ wp-content ของเราเชื่อมต่อกับ wp-content ข้างใน container จริงหรือป่าว

หลังจากที่กดติดตั้งปลั๊กอิน Jetpack by WordPress.com ไปแล้ว ก็ไปตรวจสอบที่ VS Code ของเราว่ามีโฟล์เดอร์ของปลั๊กอินเพิ่มขึ้นมาจริงหรือป่าว

พบว่ามีโฟล์เดอร์ jetpack เพิ่มขึ้นมาหนึ่งโฟล์เดอร์ ซึ่งตรงนี้เราสามารถจัดการ Plugin หรือ Themes ที่เครื่อง local ได้เลย เพราะเครื่อง local ของเราเชื่อมกับข้อมูลข้างใน container อยู่

จากนั้นทดสอบว่าเราสามารถใช้ phpMyAdmin ได้หรือเปล่าด้วยการพิมพ์ http://localhost:8585/ ตามที่ได้ตั้งค่าไปในไฟล์ docker-compose.yml

เมื่อเข้าสู่ระบบ phpMyAdmin เรียบร้อยก็จะพบฐานข้อมูลของเราและ Database Prefix ที่เรากำหนดไว้ในไฟล์ docker-compose.yml

ความสามารถที่น่าสนใจของ Docker + VS Code คือ เมื่อเราพิมพ์โค้ด PHP Syntax ผิด จะแสดง Error สีแดงของไฟล์ที่เรากำลังแก้ไขได้เลย ซึ่งตรงนี้ผมชอบมาก ๆ เลยตั้งแต่เปลี่ยนมาใช้ Docker มันโอเคมาก ไม่ต้องติดตั้ง Extension อะไรเพิ่มเติมตัว Docker จะแสดง Error ให้เลย เมื่อเรากด Save หรือ บันทึกเพื่อแก้ไข

ตามรูปตัวอย่างด้านบนคือลบ ; ออกไป ในบรรทัดที่ 47 ของไฟล์ hello.php โปรแกรม VS Code ก็แสดง Error ให้รู้ในทันทีเลย ไม่ต้องไปทดสอบเปิด Browser

แหล่งที่มา

--

--