Project Name (หรือ Stack Name) คือ namespace กลางที่ Docker Compose ใช้ในการจัดกลุ่ม Resource ทั้งหมด ไม่ว่าจะเป็น Container, Volume, Network หรือ Secret ให้อยู่ภายใต้โปรเจกต์เดียวกัน ป้องกันการชนกันของชื่อ Service เมื่อรันหลายสภาพแวดล้อมพร้อมกัน
ลำดับความสำคัญในการกำหนด Project Name
หากไม่มีการระบุชื่อโดยตรง Docker Compose จะอ่านค่าตามลำดับความสำคัญ (Precedence) ดังนี้
- Flag CLI: กำหนดผ่านคำสั่งโดยตรง
docker compose -p my-custom-stack up -d - Environment Variable: กำหนดในไฟล์
.envด้วยตัวแปรCOMPOSE_PROJECT_NAME=my-app-prod - Top-level
name:Attribute: ระบุไว้ในไฟล์docker-compose.yml(รองรับใน Compose Specification เวอร์ชันใหม่) - Folder Name (Default): ใช้ชื่อไดเรกทอรีปัจจุบันที่ไฟล์ Compose ตั้งอยู่
ความสำคัญของ Project Name เมื่อใช้งานร่วมกับ OrbStack
OrbStack ดึง Project Name มาต่อยอดการทำงานบน macOS ทำให้การพัฒนา Local Development สะดวกขึ้นอย่างมาก
- Automatic Local Domain & Routing: OrbStack สร้างโดเมนสำหรับเข้าถึง Service ผ่านเบราว์เซอร์ให้อัตโนมัติ โดยใช้แพทเทิร์น
http://<service>.<project>.orb.localเช่น Service ชื่อwebในโปรเจกต์ecommerceจะเข้าได้ผ่าน[http://web.ecommerce.orb.local](http://web.ecommerce.orb.local)ทันทีโดยไม่ต้องตั้งค่า Port Mapping - Clean UI & Grouping: จัดกลุ่มคอนเทนเนอร์ในหน้า Dashboard ของ OrbStack ตามชื่อ Stack อย่างเป็นระเบียบ สามารถสั่ง Start, Stop หรือ Restart ยกชุดได้ในคลิกเดียว
- Service Discovery ข้ามโปรเจกต์: ช่วยให้การเชื่อมต่อไปยังคอนเทนเนอร์อื่นผ่าน DNS ภายในของ OrbStack มีความแม่นยำสูง
วิธีการกำหนด Project Name ที่แนะนำ
- ระบุผ่าน Top-level
nameในไฟล์ Compose (แนะนำสำหรับ Team Standard)YAML
YAML
name: my-awesome-project services: web: image: nginx:alpine ports: - "80" db: image: postgres:16-alpine environment: POSTGRES_PASSWORD: secretpassword