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

DevOps Sep 13, 2019

โครงสร้างการใช้งาน 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 นั้นๆ ได้เลย

Arnon Kijlerdphon

IT manager & DevOps @Twin Synergy Co.,Ltd

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.