ห๊าา? run docker-compose ใน docker

Chokchai Phatharamalai
odds.team
Published in
1 min readMay 16, 2019

จากความเดิมตอนที่แล้วที่ผมพยายาม run คำสั่ง docker ใน docker container ที่มี Jenkins แล้วสรุปว่า ใน container เราควรใส่แค่ docker CLI เข้าไป แต่ใช้ docker daemon จากเครื่อง host แทน

ผมพบว่า ถ้าจะ run docker-compose เราจะลง docker-compose ใน container ตรง ๆ ไม่ได้นะ ผมลองทำแล้วเจอ error ValueError: Container … does not have a com.docker.copose.container-number label ประมาณด้านล่าง

ถ้าได้ก็ผีหลอกแหละ เพราะเราใช้ docker daemon จากเครื่อง host นี่นา (ใครงงกลับไปอ่านความเดิมตอนที่แล้วนะครับ) พอลองค้นดูก็พบวิธีหลบปัญหานี้อย่างชาญฉลาด คือไป run docker-compose ที่อยู่ใน docker แทน

ผลจากการทำแบบนี้ ทำให้คำสั่ง docker-compose (ที่ถูก run จาก docker ใน docker) เหมือนถูก run จากเครื่อง host ทำให้มันทำงานได้ตามปรกติ

--

--