before stt adding
This commit is contained in:
86
shell/build-n-export.sh
Normal file
86
shell/build-n-export.sh
Normal 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
|
||||
7
shell/docker-run.sh
Normal file
7
shell/docker-run.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
docker run -d --name go-speech --restart=always -p 18443:18443 \
|
||||
-v "$(pwd)/certs:/app/certs:ro" \
|
||||
-e GO_SPEECH_VOICE=ruslan \
|
||||
-e GO_SPEECH_PORT=18443 \
|
||||
kuznetcovay/go-speech:v1.0.4
|
||||
25
shell/generate-certs.sh
Executable file
25
shell/generate-certs.sh
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Скрипт для генерации самоподписанных SSL сертификатов
|
||||
|
||||
CERT_DIR="certs"
|
||||
CERT_FILE="$CERT_DIR/server.crt"
|
||||
KEY_FILE="$CERT_DIR/server.key"
|
||||
|
||||
# Создание директории если не существует
|
||||
mkdir -p "$CERT_DIR"
|
||||
|
||||
# Генерация самоподписанного сертификата
|
||||
openssl req -x509 -newkey rsa:4096 -keyout "$KEY_FILE" -out "$CERT_FILE" \
|
||||
-days 3650 -nodes \
|
||||
-subj "/C=RU/ST=Moscow/L=Moscow/O=Go-Speech/CN=localhost" \
|
||||
-addext "subjectAltName=DNS:localhost,DNS:*.localhost,IP:127.0.0.1"
|
||||
|
||||
echo "Сертификаты созданы:"
|
||||
echo " Certificate: $CERT_FILE"
|
||||
echo " Private Key: $KEY_FILE"
|
||||
echo ""
|
||||
echo "Для использования в браузере, добавьте сертификат в доверенные:"
|
||||
echo " sudo cp $CERT_FILE /usr/local/share/ca-certificates/go-speech.crt"
|
||||
echo " sudo update-ca-certificates"
|
||||
|
||||
11
shell/podman-run.sh
Normal file
11
shell/podman-run.sh
Normal file
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# -v "$(pwd)/certs:/app/certs:ro" \
|
||||
podman run -p 17443:8080 \
|
||||
-e GO_SPEECH_VOICE=ruslan \
|
||||
-e GO_SPEECH_PORT=8080 \
|
||||
-e GO_SPEECH_TLS=true \
|
||||
kuznetcovay/go-speech:v1.0.5-alt
|
||||
|
||||
|
||||
# podman run -p 17443:8080 -e GO_SPEECH_VOICE=ruslan -e GO_SPEECH_PORT=8080 -e GO_SPEECH_TLS=true kuznetcovay/go-speech:v1.0.5-alt
|
||||
Reference in New Issue
Block a user