Build image dengan multi platfrom dengan docker
Server memiliki architecture yang berbeda dengan server lain, architecture ini meliputi server linux dengan architecture amd64 ataupun arm64. perbedaan ini mempengaruhi image yang akan dijalankan, karena server hanya akan menjalankan image dengan architecture sama dengan lingkunganya
bagaimana caranya membuat image dengan architecture yang berbeda? untuk mengatasi ini docker mempunyai fitur untuk melakukan build sesuai architecture
jika ingin build image dengan architecture arm64, dengan mengunakkan command berikut
docker build --platfrom linux/arm64 -t image:latest .
bagaimana jika ingin membuat image dengan multi platform sayangnya ketika dokumentasi ini ditulis, docker belum bisa untuk melakukan build secara bersamaan untuk multi platform. namun docker telah menyediakan alternative lain untuk melakukan build multi platform.
yaitu dengan docker buildx
cara yang pertama, buat terlebih dahulu instance untuk menjalankan buildx
docker buildx create --use --name <instance name>
kemudian build image dengan buildx
docker buildx build --platform linux/amd64,linux/arm64 -t image:latest --push .
command diatas akan melakukan build dengan 2 architecture dan melakukan push setelah build selesai