devops/pipline/docker_build/docker_build_buildah.yml

81 lines
3.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.buildah_info: &buildah-info
- until buildah --version; do sleep 1; done
.buildah_login_registry: &buildah-login-registry
- buildah login -u $REGISTRY_USER -p $REGISTRY_PASSWORD $REGISTRY
.buildah_login_stdin: &buildah-login-stdin
- echo "$REGISTRY_PASSWORD" | buildah login -u $REGISTRY_USER $REGISTRY --password-stdin
.buildah_login_stdin_base64: &buildah-login-stdin-base64
- echo "$REGISTRY_PASSWORD" | base64 -d | buildah login -u $REGISTRY_USER $REGISTRY --password-stdin
.buildah_logout: &buildah-logout
- buildah logout $REGISTRY
.buildah_build: &buildah-build
- buildah bud $BUILD_STORAGE_DRIVER $BUILD_CACHE $BUILD_ARGS --isolation=$BUILDAH_ISOLATION -f $DOCKERFILE_PATH -t $DOCKER_TAG $CONTEXT_PATH
.buildah_push: &buildah-push
- buildah images
- buildah push $DOCKER_TAG
- if [[ "${CI_COMMIT_REF_SLUG}" == "main" || "${CI_COMMIT_REF_SLUG}" == "master" ]]; then
buildah tag $DOCKER_TAG ${REGISTRY_IMAGE}:latest; fi
- if [[ "${CI_COMMIT_REF_SLUG}" == "main" || "${CI_COMMIT_REF_SLUG}" == "master" ]]; then
buildah push ${REGISTRY_IMAGE}:latest; fi
.buildah_retag: &buildah-retag
- buildah pull $SOURCE_IMAGE
- buildah tag $SOURCE_IMAGE $TARGET_IMAGE
- buildah push $TARGET_IMAGE
.buildah_build:
stage: build
image: sed-docker.artifacts.tn.tngrp.ru/buildah:v1.39.3-ca
variables:
REGISTRY: $CI_REGISTRY
REGISTRY_USER: $CI_REGISTRY_USER
REGISTRY_PASSWORD: $CI_REGISTRY_PASSWORD
REGISTRY_IMAGE: $CI_REGISTRY_IMAGE
CONTEXT_PATH: ${CI_PROJECT_DIR}
DOCKERFILE_PATH: ${CI_PROJECT_DIR}/Dockerfile
DOCKER_TAG: $REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
BUILD_ARGS: "" # Можно изменить, например, на "--build-arg PROJECT_PATH=dotnet/app01 --build-arg CONFIG_FILE=dotnet/NuGet.Config"
# BUILD_STORAGE_DRIVER: "--storage-driver=vfs" # По умолчанию vfs(совместимый с rootless-режимом). Возможные значения: vfs,overlay,btrfs,zfs
BUILD_CACHE: "--no-cache" # Включено кэширование слоев
BUILDAH_ISOLATION: chroot
before_script:
- env | sort
# - echo "$REGISTRY_PASSWORD" | base64 -d
script:
- |
if [[ -n "${CI_COMMIT_TAG}" && "${CI_COMMIT_TAG}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
export DOCKER_TAG=${REGISTRY_IMAGE}:${CI_COMMIT_TAG}
else
export DOCKER_TAG=${REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}
fi
- *buildah-login-stdin-base64
# - *buildah-build-push
- *buildah-build
- *buildah-push
- *buildah-logout
.buildah_retag:
stage: retag
image: sed-docker.artifacts.tn.tngrp.ru/buildah:v1.39.3-ca
variables:
REGISTRY: $CI_REGISTRY
REGISTRY_USER: $CI_REGISTRY_USER
REGISTRY_PASSWORD: $CI_REGISTRY_PASSWORD
SOURCE_IMAGE:
TARGET_IMAGE:
BUILD_STORAGE_DRIVER: "--storage-driver=vfs" # По умолчанию vfs(совместимый с rootless-режимом). Возможные значения: vfs,overlay,btrfs,zfs
script:
- *buildah-login-stdin-base64
- *buildah-retag
- *buildah-logout