stages: - build variables: DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "/certs" IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG LATEST_TAG: $CI_REGISTRY_IMAGE:latest build-and-push: stage: build image: docker:24-cli services: - docker:24-dind before_script: - echo "Logging into GitLab Container Registry..." - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY script: - echo "Building Docker image..." - docker build -t $IMAGE_TAG -t $LATEST_TAG . - echo "Pushing Docker image to registry..." - docker push $IMAGE_TAG - docker push $LATEST_TAG - echo "Build and push completed successfully!" - echo "Image available at $IMAGE_TAG" rules: - if: $CI_COMMIT_BRANCH == "main" when: always - if: $CI_COMMIT_TAG when: always - when: manual tags: - docker