โครงสร้างการใช้งาน Dockerfile
และ docker-compose.yml
ในโปรเจ็คเล็กๆ นั้นโดยปกติ โครงสร้างจะเป็นแนวนี้
myapp/
- appcode/
- Dockerfile
- docker-compose.yml
และใน docker-compose.yml จะเขียนแบบนี้
version: '3'
services:
myapp:
build: '.'
แต่หากเราจะต้องทำหลาย services ขึ้นมาในโปรเจ็คเดียว หรือทำเป็น 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 นั้นๆ ได้เลย