ตัวสร้าง Docker Compose
อะไรที่รันอยู่ในสแตกนี้
การเขียน docker-compose.yml ด้วยมือหมายถึงต้องจำการย่อหน้าที่แม่นยำ ใส่เครื่องหมายคำพูดรอบการจับคู่พอร์ตทุกครั้ง และรู้ว่าบรรทัดเวอร์ชันใดที่โปรแกรม Compose ของคุณเข้าใจ เครื่องมือนี้ให้คุณนิยาม services ผ่านฟิลด์ง่ายๆ ได้แก่ ชื่อ image การจับคู่พอร์ต host:container และ volume แล้วส่งออกไฟล์ YAML ที่ถูกต้องตามสเปก Compose สมัยใหม่ (ไม่มีคีย์ version) พร้อมค่าเริ่มต้นที่สมเหตุสมผล
วิธีสร้างไฟล์ Compose
-
1
เพิ่ม services
ตั้งชื่อและเลือกอิมเมจให้แต่ละเซอร์วิส จากนั้นกำหนดการแมปพอร์ต วอลุ่ม ตัวแปรสภาพแวดล้อม และนโยบายการรีสตาร์ต มีเซอร์วิสตั้งต้นสองรายการกรอกไว้ให้แล้ว และรันได้เลยตามที่เป็นอยู่
-
2
แก้ไขหรือลบรายการ
แก้ไขฟิลด์ใดก็ได้โดยตรง เพิ่ม service อื่นด้วยปุ่ม + Service หรือลบรายการที่ไม่ต้องการ
-
3
ตรวจสอบ YAML ที่สร้าง
ตรวจไฟล์ YAML ที่ได้ การแมปพอร์ตจะอยู่ในเครื่องหมายคำพูด วอลุ่มแบบตั้งชื่อทุกตัวถูกประกาศไว้ท้ายไฟล์ และไม่มีคีย์ version ตามที่ข้อกำหนด Compose รุ่นใหม่คาดหวัง
-
4
คัดลอกไฟล์
คัดลอก docker-compose.yml ที่สร้างแล้ววางลงในโฟลเดอร์รากของโปรเจกต์
สเปก Compose สมัยใหม่
Compose V2 (ปลั๊กอินที่มาพร้อมกับ Docker Desktop และ Docker Engine สมัยใหม่) เป็นไปตาม Compose Specification คีย์ version: เลิกใช้แล้ว เครื่องมือนี้จึงละเว้นไว้ คีย์ระดับบนสุดคือ services networks volumes configs และ secrets
โครงสร้างของ service
service ที่ใกล้เคียงระดับโปรดักชันมีหน้าตาแบบนี้:
services:
web:
image: nginx:1.27-alpine
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./public:/usr/share/nginx/html:ro
depends_on:
app:
condition: service_healthy
networks:
- frontend
- backend
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost/health"]
interval: 30s
timeout: 5s
retries: 3
Volume: bind mount กับ named volume
- Bind mount (
./app:/var/www) เชื่อมคอนเทนเนอร์กับเส้นทางบนเครื่องโฮสต์ เหมาะกับการพัฒนาในเครื่องเพราะการเปลี่ยนแปลงแสดงผลทันที - Named volume (
pgdata:/var/lib/postgresql/data) จัดการโดย Docker และคงอยู่โดยไม่ขึ้นกับเส้นทางใดๆ บนโฮสต์ เหมาะกับฐานข้อมูลและข้อมูลที่ไม่อยากลบพลาดด้วยrm -rf - Anonymous volume - หลีกเลี่ยง แม้จะอยู่ข้ามการรีสตาร์ต แต่จะหายไปโดยไม่มีการเตือนเมื่อรัน
docker compose down -v
เครือข่าย
ตามค่าเริ่มต้น Compose จะสร้างเครือข่ายตามชื่อโปรเจกต์และเชื่อมทุก service เข้าไว้ การประกาศเครือข่ายอย่างชัดเจนมีประโยชน์เมื่อ:
- ต้องการแยกฐานข้อมูลออกจาก service ที่เปิดสู่สาธารณะ
- ต้องใช้ bridge ที่มี subnet กำหนดเองเพื่อให้สอดคล้องกับโครงสร้างพื้นฐานเดิม
- ต้องการเชื่อมคอนเทนเนอร์เข้ากับเครือข่ายภายนอกที่มีอยู่แล้ว (
external: true)
ข้อผิดพลาดทั่วไปที่ควรหลีกเลี่ยง
- คีย์ version ขัดแย้ง การใส่
version: "3.8"ไว้ด้านบนทำให้ฟีเจอร์ใหม่ๆ เช่นstart_intervalของ healthcheck ใช้ไม่ได้กับ Compose รุ่นเก่า เครื่องมือนี้จึงละเว้นคีย์ version - เครื่องหมายคำพูดของพอร์ต
8080:80ในบางกรณีจะถูกอ่านเป็นเลขฐาน 60 ของ YAML ควรใส่เครื่องหมายคำพูดรอบการจับคู่พอร์ตเสมอ ซึ่งเครื่องมือนี้ทำให้แล้ว - secret เขียนตายตัว secret ที่เขียนลงใน compose.yml โดยตรงจะถูก commit ขึ้น git ควรเก็บใน
env_fileหรือตัวเก็บ secret ของแพลตฟอร์ม - depends_on ที่ไม่มีเงื่อนไข การใช้
depends_on: [db]ธรรมดาจะรอแค่คอนเทนเนอร์เริ่มทำงาน ไม่ใช่รอให้ service พร้อม ควรใช้condition: service_healthyและเพิ่ม healthcheck ให้กับ service ที่พึ่งพา
คำถามที่พบบ่อย
Compose Specification ปัจจุบัน (สอดคล้องกับ Docker Compose V2) ไฟล์ละเว้นคีย์ version: ซึ่งเป็นวิธีเขียนไฟล์ Compose สมัยใหม่ ใช้งานได้กับ Docker Compose V2.22 ขึ้นไป
ผ่านฟอร์มยังไม่ได้ ฟอร์มครอบคลุมอิมเมจ พอร์ต วอลุ่ม ตัวแปรสภาพแวดล้อม และนโยบายการรีสตาร์ต พร้อมประกาศวอลุ่มแบบตั้งชื่อทุกตัวที่เซอร์วิสเมาท์ไว้ตามที่ Compose ต้องการ ส่วนเน็ตเวิร์กและ health check ให้เพิ่มลงในไฟล์ YAML ที่ได้ด้วยตัวเอง
ไม่ เครื่องมือนี้เน้นที่ compose.yml สำหรับ Dockerfile ใช้เครื่องสร้าง Dockerfile ซึ่งจัดการเรื่องการเลือก image พื้นฐานและลำดับ COPY/RUN สำหรับห้าเทคโนโลยี
ไม่ คำนิยามของ services ใช้เพื่อสร้าง YAML ในหน้านี้เท่านั้น ไม่มีการเก็บ อัปโหลด หรือแชร์
เครื่องมือที่เกี่ยวข้อง
อ้างอิงตัวอักษร HTML
รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ
ตารางอ้างอิงแป้นพิมพ์ลัด
ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux
เครื่องสุ่มที่อยู่
สร้างระเบียนคล้ายที่อยู่ 1–20 รายการสำหรับแบบจำลองและการทดสอบ ด้วยรูปแบบประเทศแบบย่อ
ตารางอ้างอิง ASCII
ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL
ตัวสร้างลูกศร CSS
สร้างลูกศร CSS ในเบราว์เซอร์ด้วยทิศทาง สี ขนาด และความหนาของเส้นขอบ แล้วคัดลอกกฎ.
ตัวลดรูปพีชคณิตบูลีน
ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^
เครื่องมือนี้มีให้บริการในภาษาอื่น
- Docker Composeジェネレーター [JA]
- Docker Compose-generator [NL]
- Generador de Docker Compose [ES]
- Trình tạo Docker Compose [VI]
- Gerador de Docker Compose [PT]
- Generator Docker Compose [ID]
- Docker-Compose-Generator [DE]
- Docker Compose-generator [SV]
- مولّد Docker Compose [AR]
- Generator Docker Compose [PL]
- Docker Compose 생성기 [KO]
- Générateur Docker Compose [FR]
- Docker Compose Generator [EN]
- Generatore di Docker Compose [IT]
- Генератор Docker Compose [RU]
- Docker Compose Oluşturucu [TR]
- Docker Compose 生成器 [ZH]