diff --git a/pipline/docker_build/docker_build_buildah.yml b/pipline/docker_build/docker_build_buildah.yml index 9d07aa0..48eb5e7 100644 --- a/pipline/docker_build/docker_build_buildah.yml +++ b/pipline/docker_build/docker_build_buildah.yml @@ -1 +1,80 @@ -111 \ No newline at end of file +.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