ci-templates/docker-build.yml

46 lines
1.2 KiB
YAML

# Шаблон: Docker Build + Push
#
# Использование:
# include:
# - project: 'dot-dot/ci-templates'
# file: '/docker-build.yml'
#
# Переменные (можно переопределить):
# IMAGE_NAME: ${REGISTRY}/custom-name
# DOCKERFILE: path/to/Dockerfile
# DOCKER_CONTEXT: ./subdir
stages:
- build
variables:
REGISTRY: registry.dot-dot.ru
IMAGE_NAME: ${REGISTRY}/${CI_PROJECT_NAME}
DOCKERFILE: Dockerfile
DOCKER_CONTEXT: .
.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 -f ${DOCKERFILE} -t ${IMAGE_NAME}:${CI_COMMIT_REF_SLUG} ${DOCKER_CONTEXT}
- docker push ${IMAGE_NAME}:${CI_COMMIT_REF_SLUG}
rules:
- if: $CI_COMMIT_BRANCH
# Сборка тегов (v0.0.1 → registry/app:v0.0.1)
build:tag:
extends: .docker-build
stage: build
script:
- docker build --pull -f ${DOCKERFILE} -t ${IMAGE_NAME}:${CI_COMMIT_TAG} ${DOCKER_CONTEXT}
- docker push ${IMAGE_NAME}:${CI_COMMIT_TAG}
rules:
- if: $CI_COMMIT_TAG