ลองใช้งาน Docker Compose กับ WordPress

ไม่ได้เขียนบทความซะนาน กลับมาเขียนๆ ไว้ซักหน่อยดีกว่า บทความนี้จะเป็นการใช้งาน Docker Compose เพื่อติดตั้ง WordPress ใครที่ใช้ Docker อยู่แล้วก็คงรู้แล้วว่า Docker นั้น ช่วยให้เราจัดการอะไรหลายๆ อย่างได้สะดวยขึ้น ตัวอย่างก็คือ ไม่ต้องติดตั้งโปรแกรมลงบนเครื่องโดยตรง เล่นเสร็จก็ลบ container ไม่มีอะไรมากินพื้นที่อันนี้นิดของเรา (ของผมยังเป็น SSD 128G ก็เลยต้องประหยัดๆ หน่อย ^^)

การนำเอา Docker Compose จะช่วยให้เราสะดวกขึ้นอีกขั้นหนึ่ง อย่างตอนนี้เราจะติดตั้ง WordPress ถ้าใช้แค่ Docker อาจจะต้องรันคำสั่งเพื่อรัน Container ขึ้นมา 2 ครั้ง (wordpress กับ database) แต่ถ้าเราใช้ Docker Compose เราอยากได้อะไรบ้างก็เขียนไว้ในไฟล์ docker-compose.yaml แล้วรันคำสั่งโป้งเดียวก็จะได้ของมาครบเลย

ก่อนอื่นก็มาเตรียมไฟล์ docker-compose.yaml  กันก่อน สร้างโฟล์เดอร์ที่จะเก็บไฟล์โปรเจ็คของเราก่อน อันนี้แล้วแต่ความชอบเลยนะครับ ^^ ผมจะเอาเป็น imooh.com ก็แล้วกัน เผื่อจะเอาไว้ใช้ตอนอยากแก้ไขธีมของเว็บครับ

version: '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
     volumes:
       - src:/var/www/html
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

สิ่งที่เราต้องทำเพิ่มเติมก็คือ ตรง wordpress service เราต้องเพิ่ม volumes เข้าไป จะได้แก้ไขโค้ดของ wordpress ได้

     volumes:
       - src:/var/www/html

เสร็จแล้วก็รันคำสั่ง

docker-compose up

รอซักหน่อยในกรณีที่เรายังไม่มี images ของ wordpress และ mysql แต่ถ้ามีอยู่แล้วก็แป๊บเดียว

ถ้าเสร็จแล้วเราก็จะสามารถแก้ไขโค้ดของ WordPress ภายใต้โฟล์เดอร์ src ครับ ดูรูปๆ จะได้เห็นชัดๆ

เรียบร้อยจะทำอะไรกับ WordPress ก็ตามสะดวกเลยครับทีนี้ อ่อเราสามารถเข้าดู WordPress ของเราที่ http://localhost:8000 นะครับ ^^

ขอบคุณแหล่งความรู้

https://docs.docker.com/compose/wordpress/