workflow: rules: - if: $CI_COMMIT_TAG when: never - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS when: never # - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch default: image: docker:28.0.4 services: - docker:28.0.4-dind before_script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY variables: # Use TLS https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled DOCKER_HOST: tcp://docker:2376 DOCKER_TLS_CERTDIR: "/certs" CONTAINER_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_BRANCH CONTAINER_RELEASE_IMAGE: $CI_REGISTRY_IMAGE:latest IMAGES: ('poetry') stages: - build .commands: strip_tag: - TAG=$(echo ${CI_COMMIT_MESSAGE} | tr -d \\n) build: stage: build script: - docker context create my-builder - docker buildx create my-builder --driver docker-container --use - | for image in $IMAGES do CONTAINER_IMAGE="$CI_REGISTRY_IMAGE/$image" docker buildx build --push -t $CONTAINER_IMAGE --cache-to type=registry,ref=$CONTAINER_IMAGE,mode=max --cache-from type=registry,ref=$CONTAINER_IMAGE -f Dockerfile-$image . done