Merge pull request #3704 from lxm/feature/multiarch
[feature] use buildx to produce multi arch image #3683
This commit is contained in:
29
docs/build-multiarch-images.md
Normal file
29
docs/build-multiarch-images.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# build mulit-arch image with docker buildx
|
||||
|
||||
## set up env for docker buildx
|
||||
|
||||
run follow commands
|
||||
|
||||
```
|
||||
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||
docker buildx rm arm64builder
|
||||
docker buildx create --name arm64builder
|
||||
docker buildx use arm64builder
|
||||
docker buildx inspect --bootstrap
|
||||
```
|
||||
|
||||
## build images
|
||||
|
||||
If build multi platform one time, can not use `--load` param, You must have privileges to push images to `$REPO`
|
||||
|
||||
```
|
||||
docker buildx build --platform="linux/amd64,linux/arm64" . -t $REPO/ks-apiserver:$TAG -f build-multiarch/Dockerfile --target=ks-apiserver --push
|
||||
docker buildx build --platform="linux/amd64,linux/arm64" . -t $REPO/ks-controller-manager:$TAG -f build-multiarch/Dockerfile --target=ks-controller-manager --push
|
||||
```
|
||||
|
||||
Also you can build a image for local build with only one arch
|
||||
|
||||
```
|
||||
docker buildx build --platform="linux/arm64" . -t "ks-apiserver:arm64" -f build-multiarch/Dockerfile --target=ks-apiserver --load
|
||||
docker buildx build --platform="linux/amd64" . -t "ks-apiserver:amd64" -f build-multiarch/Dockerfile --target=ks-apiserver --load
|
||||
```
|
||||
Reference in New Issue
Block a user