User Tools

Site Tools


gitlab-ci-multiplatform

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
gitlab-ci-multiplatform [2021/01/09 10:07] – [Enable Emulators] baumigitlab-ci-multiplatform [2025/09/11 09:43] (current) – removed baumi
Line 1: Line 1:
-====== Gitlab CI MultiPlatform Build ====== 
  
-===== Enable binary formats ===== 
-<code bash> 
-$ docker run --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" 
-  ] 
-} 
-</code> 
-===== Create buildx enabled docker image for builds ===== 
-<file bash Dockerfile> 
-ARG BUILDX_VERSION=0.4.2 
-ARG DOCKER_VERSION=latest 
- 
-FROM alpine AS fetcher 
- 
-RUN apk add curl 
- 
-ARG BUILDX_VERSION 
-RUN curl -L \ 
-  --output /docker-buildx \ 
-  "https://github.com/docker/buildx/releases/download/v${BUILDX_VERSION}/buildx-v${BUILDX_VERSION}.linux-amd64" 
- 
-RUN chmod a+x /docker-buildx 
- 
-ARG DOCKER_VERSION 
-FROM docker:${DOCKER_VERSION} 
- 
-COPY --from=fetcher /docker-buildx /usr/lib/docker/cli-plugins/docker-buildx 
-</file> 
- 
-Credits to [[https://github.com/jdrouet|Jérémie Drouet]] 
- 
-==== Build & push image ==== 
- 
-<code bash> 
-$ docker build --pull -t registry/docker-with-buildx . 
-$ docker push registry/docker-with-buildx 
-</code> 
- 
-===== Switch to buildx in .gitlab-ci.yml ===== 
-Define CI_PLATFORMS variable in Settings / CI/CD: 
- 
-CI_PLATFORMS = linux/amd64,linux/arm/v7,... 
- 
-<file bash .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 . 
-</file> 
-{{tag>kb git}} 
gitlab-ci-multiplatform.1610183278.txt.gz · Last modified: by baumi

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki