#!/bin/bash # Локальный фолбэк для сборки и публикации прод-образа. # В обычном потоке это делает CI (.github/workflows/build.yml); скрипт нужен, # только если надо собрать и запушить образ вручную со своей машины. # # Сам деплой на VPS запускается вручную из GitHub Actions # ("Deploy to VPS (Manual)") — он тянет готовый образ из GHCR. set -euo pipefail # Безопасно подгружаем .env (корректно для значений с пробелами/юникодом). if [ -f .env ]; then set -a # shellcheck disable=SC1091 . ./.env set +a else echo "🚨 Ошибка: файл .env не найден!" exit 1 fi REGISTRY="ghcr.io" IMAGE_NAME="${IMAGE:-${REGISTRY}/nineap/netrunner-control-plane:latest}" echo "📦 Сборка Docker-образа (фронт и Rust собираются внутри образа)..." docker build --pull -t "${IMAGE_NAME}" . echo "🔐 Авторизация в GHCR..." echo "${GHCR_TOKEN}" | docker login "${REGISTRY}" -u "nineap" --password-stdin echo "📤 Публикация образа..." docker push "${IMAGE_NAME}" echo "🎉 Образ ${IMAGE_NAME} в реестре. Деплой: GitHub → Actions → Deploy to VPS (Manual)."