2025-08-10 19:07:40 +08:00
|
|
|
|
.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
|