new single-stage multiarch ci

This commit is contained in:
Micha Gläß-Stöcker 2021-07-03 10:06:25 +02:00
parent cf167a1792
commit 46546bedb9

View file

@ -1,48 +1,21 @@
image: docker:19.03
services:
- docker:19.03-dind
image: egon0/docker-with-buildx-and-git
variables:
DOCKER_DRIVER: overlay
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
stages:
- buildx
- deploy
buildx:
image: docker:19.03-git
stage: buildx
variables:
GIT_STRATEGY: none
artifacts:
paths:
- buildx
expire_in: 3 hour
services:
- docker:19.03-dind
script:
- export DOCKER_BUILDKIT=1
- git clone git://github.com/docker/buildx ./docker-buildx
- docker build --platform=local -o . ./docker-buildx
only:
changes:
- Dockerfile
- .gitlab-ci.yml
except:
- schedules
services:
- docker:dind
deploy:
image: docker:19.03
stage: deploy
services:
- name: docker:19.03-dind
command: ["--experimental"]
before_script:
- mkdir -p ~/.docker/cli-plugins
- mv buildx ~/.docker/cli-plugins/docker-buildx
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
build:
stage: build
variables:
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
D_IMAGE_TAG: egon0/0bin-multiarch:$CI_COMMIT_REF_SLUG
D_LATEST_TAG: egon0/0bin-multiarch:latest
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker buildx create --use --name mybuilder
- docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --push -t $CI_REGISTRY_IMAGE:latest .
- docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD
- docker buildx create --use --name A$CI_COMMIT_SHORT_SHA
- docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE_TAG -t $CI_REGISTRY_IMAGE:latest -t $D_IMAGE_TAG -t $D_LATEST_TAG .