これは何?
kaniko を使って, docker buildx みたいなことをする話です.
結論
docker run の引数に --platform
つけ, それに対応する kaniko の image をしていす
ただし, linux/amd64, linux/arm64, linux/ppc64le の3種類のみ対応しています.
想定読者
- docker in docker をやりたくない人
想定していない読者
- Kubernetes 使う人
詳細
kaniko は customPlatform の説明にあるように, 異なるアーキテクチャに向けた docker image のビルドはできません.
ですが, kaniko 自身は v.1.5.0 から multi-platform image となり, 3種類のプラットフォームで動作することができます.
ということで, 作成する docker image のターゲットプラットフォームで, kaniko を動かせば OK ということです.
linux/arm64
の docker image を作成するなら, 次のように platform 指定します.
docker run --platform linux/arm64 -v "$context":/workspace \
gcr.io/kaniko-project/executor:latest@sha256:1eaf7551bcc48b9a31deac4781433fabcd8ca633c4c0a3c61a281d4ec1fffa41 \
--dockerfile "${dockerfile}" --destination "${destination}" --context dir:///workspace/