Update pipline/docker_build/docker_build_buildah.yml

This commit is contained in:
pashko 2025-08-10 19:07:40 +08:00
parent 392a8c94ff
commit a4c9d0092a

View File

@ -1 +1,80 @@
111
.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