หมวดหมู่: SecDevOps

วิธีการสร้าง Docker Network ภายนอก (magi) สำหรับจัดการ Local Stackวิธีการสร้าง Docker Network ภายนอก (magi) สำหรับจัดการ Local Stack

ในโครงสร้างสถาปัตยกรรมแบบแยกส่วน (Decoupled Services) ที่เราแชร์ฐานข้อมูลหรือเครือข่ายร่วมกันระหว่างโปรเจกต์ต่าง ๆ บนเครื่อง การสร้าง Docker Network ภายนอก (External Network) ถือเป็นแนวทางปฏิบัติที่ดี ช่วยให้คอนเทนเนอร์ของ WordPress สามารถมองเห็นและติดต่อกับคอนเทนเนอร์ฐานข้อมูลกลาง (เช่น MariaDB) ที่อยู่นอกโฟลเดอร์โปรเจกต์ได้โดยตรง

บทความนี้จะแนะนำวิธีสร้างและจัดการไฟล์ตั้งค่าเครือข่าย magi ณ ตำแหน่ง /Users/common/Docker/network-magi/docker-compose.yml ครับ


1. โครงสร้างและตำแหน่งไฟล์

สร้างโฟลเดอร์กลางสำหรับเก็บคอนฟิกเครือข่ายและบริการส่วนกลาง (ถ้ามี) ไว้ที่พาธ

/Users/common/Docker/network-magi
 └── docker-compose.yml

2. ตัวอย่างโค้ดไฟล์ docker-compose.yml สำหรับสร้างเครือข่าย magi

เปิดไฟล์ /Users/common/Docker/magi/docker-compose.yml (หากยังไม่มีให้สร้างขึ้นมาใหม่) แล้วใส่คอนฟิกสำหรับประกาศใช้งาน External Network ดังนี้ครับ

# docker-compose.yml (ฝั่ง PHP App + Debugger)

networks:
  magi:
    name: magi
    external: true # สร้างไว้ก่อนด้วย: docker network create magi

services:
  php-app:
    build:
      context: .
      dockerfile: Dockerfile.dev
    container_name: php_dev_app
    restart: unless-stopped
    volumes:
      - .:/var/www/html:cached
    environment:
      - XDEBUG_MODE=develop,debug,coverage
      - XDEBUG_CONFIG=client_host=host.docker.internal client_port=9003
      - MAIL_HOST=mailpit # เรียกหา mailpit บนเครือข่าย magi ได้โดยตรง
      - MAIL_PORT=1025
    extra_hosts:
      - "host.docker.internal:host-gateway"
    networks:
      - magi
    ports:
      - "8000:80"

ข้อสังเกต

  • ในโฟลเดอร์ส่วนกลางของ magi เราจะตั้งค่า external: false (หรือละไว้) เพื่อให้คำสั่ง docker compose up เป็นตัวสร้างเครือข่าย magi ขึ้นมาจริง ๆ
  • ส่วนในไฟล์ docker-compose.yml ของโปรเจกต์ย่อย (เช่น WordPress) เราจะตั้งค่าเป็น external: true เพื่อบอกว่า “ให้ไปเกาะใช้งานเครือข่าย magi ที่มีคนสร้างรอไว้แล้ว”

3. คำสั่งในการสร้างและเปิดใช้งานเครือข่าย

เมื่อเตรียมไฟล์ docker-compose.yml ที่ /Users/common/Docker/magi/ เรียบร้อยแล้ว ให้รันคำสั่งเหล่านี้ใน Terminal:

  1. เปลี่ยนเส้นทางไปยังโฟลเดอร์กลาง
    cd /Users/common/Docker/network-magi/
  2. สั่งสร้างและรันเครือข่าย (รวมถึงบริการฐานข้อมูลกลางถ้ามี)
    docker compose up -d
  3. ตรวจสอบว่าเครือข่าย magi ถูกสร้างขึ้นมาสำเร็จหรือไม่
    docker network ls
    คุณจะเห็นชื่อ magi ปรากฏขึ้นมาในรายการ ซึ่งพร้อมให้โปรเจกต์ WordPress หรือเว็บอื่น ๆ ดึงไปใช้งานต่อได้ทันทีครับ