From 85883ee77e4391a85ad966dad5c4fd8e1c0636dd Mon Sep 17 00:00:00 2001 From: Sergey Paramoshkin Date: Sun, 1 Feb 2026 00:03:11 +0300 Subject: [PATCH] Add GitLab CI templates for Docker builds --- docker-build-extended.yml | 42 +++++++++++++++++++++++++++++++++++++++ docker-build.yml | 32 +++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 docker-build-extended.yml create mode 100644 docker-build.yml diff --git a/docker-build-extended.yml b/docker-build-extended.yml new file mode 100644 index 0000000..b31fa7c --- /dev/null +++ b/docker-build-extended.yml @@ -0,0 +1,42 @@ +# Шаблон: 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 diff --git a/docker-build.yml b/docker-build.yml new file mode 100644 index 0000000..e372aa0 --- /dev/null +++ b/docker-build.yml @@ -0,0 +1,32 @@ +# Шаблон: Docker Build + Push +# Использование в проекте: +# +# include: +# - project: 'dot-dot/ci-templates' +# file: '/docker-build.gitlab-ci.yml' +# +# Или скопировать содержимое в .gitlab-ci.yml проекта + +stages: + - build + +variables: + REGISTRY: registry.dot-dot.ru + # Можно переопределить в проекте: + # IMAGE_NAME: ${REGISTRY}/custom-name + 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: + extends: .docker-build + stage: build + script: + - docker build --pull -t ${IMAGE_NAME}:${CI_COMMIT_REF_SLUG} . + - docker push ${IMAGE_NAME}:${CI_COMMIT_REF_SLUG} + rules: + - if: $CI_COMMIT_BRANCH + - if: $CI_COMMIT_TAG