# Шаблон: Docker Build + Push (расширенный) # Теги: branch, commit SHA, latest (для tags) stages: - build variables: REGISTRY: registry.dot-dot.ru IMAGE_NAME: ${REGISTRY}/${CI_PROJECT_NAME} .docker-build: image: docker:24 before_script: - echo "${REGISTRY_PASSWORD}" | docker login ${REGISTRY} -u ${REGISTRY_USER} --password-stdin # Сборка веток build:branch: extends: .docker-build stage: build script: - docker build --pull -t ${IMAGE_NAME}:${CI_COMMIT_REF_SLUG} -t ${IMAGE_NAME}:${CI_COMMIT_SHORT_SHA} . - docker push ${IMAGE_NAME}:${CI_COMMIT_REF_SLUG} - docker push ${IMAGE_NAME}:${CI_COMMIT_SHORT_SHA} rules: - if: $CI_COMMIT_BRANCH # Сборка тегов (релизы) build:tag: extends: .docker-build stage: build script: - docker build --pull -t ${IMAGE_NAME}:${CI_COMMIT_TAG} -t ${IMAGE_NAME}:latest . - docker push ${IMAGE_NAME}:${CI_COMMIT_TAG} - docker push ${IMAGE_NAME}:latest rules: - if: $CI_COMMIT_TAG