โครงสร้างโปรเจ็ค Dockerfile สำหรับ Microservice13 September 2019DevOps

โครงสร้างโปรเจ็ค Dockerfile สำหรับ Microservice

โครงสร้างการใช้งาน Dockerfile และ docker-compose.yml ในโปรเจ็คเล็กๆ นั้นโดยปกติ โครงสร้างจะเป็นแนวนี้

myapp/
  - appcode/
  - Dockerfile
  - docker-compose.yml

และใน docker-compose.yml จะเขียนแบบนี้

version: '3'

services:
  myapp:
    build: '.'

แต่หากเราจะต้องทำหลาย services ขึ้นมาในโปรเจ็คเดียว หรือทำเป็น Microservice เราสามารถทำโครงสร้างของโปรเจ็คได้แบบนี้

โครงสร้างโปรเจ็คสำหรับ Microservice

myapp/
  - auth/
    - Dockerfile
  - billing/
    - Dockerfile
  - contact/
    - Dockerfile
  - user/
    - Dockerfile
  - docker-compose.yml

สังเกตุว่าในแต่ละ service จะมี Dockerfile ของตัวมันเองเพราะแต่ละ service อาจจะมีภาษาที่แต่ต่างกันได้ แต่เราจะจัดการพวกนี้ทั้งหมดผ่าน docker-compose.yml ไฟล์เดียวแบบนี้

version: '3'

services:
  auth:
    build: './auth'
  billing:
    build: './billing'
  contact:
    build: './contact'
  user:
    build: './user'

ในการเขียนลักษณะนี้จะเป็นการไปเรียก Dockerfile ในแต่ละ service มาทำงานทำให้เราสามารถจัดการได้ผ่าน docker-compose.yml ไฟล์เดียว และแต่ละ service ก็สามารถคุยผ่าน network ภายในได้เลย จากปกติต้องเรียกเป็น ip หรือโดเมน ถ้าในลักษณะนี้เราสามารถเรียกผ่านชื่อ service นั้นๆ ได้เลย

ก่อนหน้า
ถัดไป