# Шаблон: 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