User Tools

Site Tools


gitlab-ci-multiplatform

This is an old revision of the document!


Gitlab CI MultiPlatform Build

Enable Emulators

# docker run -it --rm --privileged tonistiigi/binfmt --install all
{
  "supported": [
    "linux/amd64",
    "linux/arm64",
    "linux/riscv64",
    "linux/ppc64le",
    "linux/s390x",
    "linux/386",
    "linux/arm/v7",
    "linux/arm/v6"
  ],
  "emulators": [
    "qemu-aarch64",
    "qemu-arm",
    "qemu-ppc64le",
    "qemu-riscv64",
    "qemu-s390x"
  ]
}

Create buildx enabled docker image for builds

Dockerfile
 

Build image

# docker build --pull -t registry/docker-with-buildx .
# docker push registry/docker-with-buildx

Switch to buildx in .gitlab-ci.yml

Define CI_PLATFORMS variable in Settings / CI/CD:

CI_PLATFORMS = linux/amd64,linux/arm/v7,…

.gitlab-ci.yml
image: registry/docker-with-buildx
 
services:
  - docker:dind
 
build:
  stage: build
  script:
    - docker login -u $CI_USER -p $CI_TOKEN $CI_REGISTRY
    - docker buildx create --use
    - docker buildx build --platform $CI_PLATFORMS --push --pull -t $CI_REGISTRY_IMAGE .
,
gitlab-ci-multiplatform.1610182161.txt.gz · Last modified: 2021/01/09 09:49 by baumi

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki