image: jonoh/docker-buildx-qemu variables: DOCKER_HOST: tcp://docker:2375/ PLATFORM: local DOCKER_IMAGE_TAG: latest DOCKER_PREBUILD_CMD: echo services: - docker:dind .docker_before_script: &docker_before_script - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - docker pull "$CI_REGISTRY_IMAGE" || true - '[[ "$PLATFORM" != "local" ]] && update-binfmts --enable' # Use docker-container driver to allow useful features (push/multi-platform) - docker buildx create --driver docker-container --use - docker buildx inspect --bootstrap build: stage: build before_script: *docker_before_script script: - $DOCKER_PREBUILD_CMD - docker buildx build --pull --cache-from "$CI_REGISTRY_IMAGE" --platform "$PLATFORM" -t "$CI_REGISTRY_IMAGE:$DOCKER_IMAGE_TAG" --push $EXTRA_BUILD_ARGS . only: - master build-unstable: stage: build before_script: *docker_before_script script: - $DOCKER_PREBUILD_CMD - docker buildx build --pull --cache-from "$CI_REGISTRY_IMAGE" --platform "$PLATFORM" -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" --push $EXTRA_BUILD_ARGS . except: - master