การสร้าง Docker image นั้น สามารถสร้าง image แบบ Multi-architecture ได้
โดยทำการ build ผ่าน Buildx
มีขั้นตอนดังนี้
ทำการสร้าง image ผ่าน buildx command ดังนี้
[gist id="3944c2346a2a11d4674e3adbfb5f4938" file="1.txt"]ขั้นตอนที่ 1 ทำการสร้าง Builder ใหม่ก่อน
[gist id="3944c2346a2a11d4674e3adbfb5f4938" file="2.txt"]ขั้นตอนที่ 2 ทำการ build image ตาม architecture และ platform ที่ต้องการ
- linux/amd64
- linux/arm64
- darwin/arm64
ถ้ามีการใช้ Docker image อื่น ๆ ต้องดูด้วยว่า platform ที่ระบุไว้ในการ build มีหรือไม่ด้วย
ยกตัวอย่างเช่น Golang จะทำการ build ตาม architecture ต่าง ๆ ให้อีกด้วย
ขั้นตอนการ build image
[gist id="3944c2346a2a11d4674e3adbfb5f4938" file="3.txt"]ลองดูได้ที่ Docker Hub ว่า image ที่สร้างสนับสนุน platform อะไรบ้าง
เพียงเท่านี้ก็ใช้งานได้แล้ว