before stt adding

This commit is contained in:
2025-11-28 17:43:00 +06:00
parent fccafad6de
commit f933c315e8
17 changed files with 10002 additions and 672 deletions

86
shell/build-n-export.sh Normal file
View File

@@ -0,0 +1,86 @@
#!/bin/bash
# Скрипт для сборки Podman образа и опционального экспорта в tar.gz
# Использование: ./build-n-export.sh <base_image> <registry> <image_name> <version> [export]
# Пример: ./build-n-export.sh registry.altlinux.org/alt/base:p10 kuznetcovay go-speech v1.0.4 true
# ./build-n-export.sh registry.altlinux.org/alt/base:p10 kuznetcovay go-speech v1.0.4 false (только сборка)
set -e # Остановка при ошибке
# Проверка аргументов
if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ]; then
echo "Ошибка: Недостаточно аргументов"
echo "Использование: $0 <base_image> <registry> <image_name> <version> [export]"
echo " base_image - базовый образ для второго этапа сборки (например: registry.altlinux.org/alt/base:p10)"
echo " registry - реестр для образа"
echo " image_name - имя образа"
echo " version - версия образа"
echo " export - true/yes/1 - экспортировать образ (по умолчанию: false)"
echo ""
echo "Пример: $0 registry.altlinux.org/alt/base:p10 kuznetcovay go-speech v1.0.4 true"
echo " $0 registry.altlinux.org/alt/base:p10 kuznetcovay go-speech v1.0.4 false (только сборка)"
exit 1
fi
BASE_IMAGE="$1"
REGISTRY="$2"
IMAGE_NAME="$3"
VERSION="$4"
EXPORT="${5:-false}" # По умолчанию false, если не указано
FULL_IMAGE_NAME="${REGISTRY}/${IMAGE_NAME}:${VERSION}"
OUTPUT_FILE="go-speech-${VERSION}.tar.gz"
# Сохранение версии в VERSION.txt
echo "${VERSION}" > VERSION.txt
echo "✓ Версия сохранена в VERSION.txt: ${VERSION}"
# Нормализация значения export (приводим к нижнему регистру)
EXPORT=$(echo "$EXPORT" | tr '[:upper:]' '[:lower:]')
# Проверка значения export
if [[ "$EXPORT" == "true" || "$EXPORT" == "yes" || "$EXPORT" == "1" ]]; then
DO_EXPORT=true
else
DO_EXPORT=false
fi
echo "=== Сборка Podman образа ==="
echo "Базовый образ: ${BASE_IMAGE}"
echo "Образ: ${FULL_IMAGE_NAME}"
echo "Экспорт: ${DO_EXPORT}"
echo ""
# Сборка образа с передачей базового образа через build arg
podman build --build-arg BASE_IMAGE="${BASE_IMAGE}" -t "${FULL_IMAGE_NAME}" .
if [ $? -ne 0 ]; then
echo "Ошибка: Не удалось собрать образ"
exit 1
fi
echo ""
echo "✓ Образ успешно собран"
echo ""
# Экспорт образа в tar.gz (только если указано)
if [ "$DO_EXPORT" = true ]; then
echo "=== Экспорт образа в tar.gz ==="
echo "Файл: ${OUTPUT_FILE}"
echo ""
podman save "${FULL_IMAGE_NAME}" | gzip > "${OUTPUT_FILE}"
if [ $? -ne 0 ]; then
echo "Ошибка: Не удалось экспортировать образ"
exit 1
fi
# Проверка размера файла
FILE_SIZE=$(du -h "${OUTPUT_FILE}" | cut -f1)
echo "✓ Образ успешно экспортирован"
echo "Размер файла: ${FILE_SIZE}"
echo ""
echo "Файл сохранен: ${OUTPUT_FILE}"
else
echo "Экспорт пропущен (параметр export = false)"
fi