BUH_bot/build-image.bat
Игорь Надеин b7853637bc feat: Add CI/CD pipeline and deployment automation
GitHub Actions Workflow:
- Automatic build on push to main/develop
- Build on tags (v*.*.*)
- Multi-platform support (linux/amd64)
- Publish to ghcr.io registry
- Docker layer caching
- Metadata extraction for tags

Build Scripts (Linux + Windows):
- build-image.sh/bat: Build and publish to registry
- Registry authentication check
- Image testing before push
- Configurable registry (default: ghcr.io)

Deployment Scripts (Linux + Windows):
- deploy-prod.sh/bat: Production deployment automation
- Pre-deployment checks (.env.prod validation)
- Automatic backup before deploy
- Image pull and stack deployment
- Health check verification
- Rollback support
2025-11-03 14:21:19 +03:00

61 lines
1.7 KiB
Batchfile

@echo off
REM Скрипт для сборки и публикации Docker образа (Windows)
echo 🔨 Сборка Docker образа для BUH Bot
REM Конфигурация
set REGISTRY=ghcr.io
set USERNAME=username
set IMAGE_NAME=buh_bot
set VERSION=latest
echo Registry: %REGISTRY%
echo Username: %USERNAME%
echo Version: %VERSION%
echo.
REM Сборка образа
echo 📦 Сборка образа...
docker build ^
--tag "%REGISTRY%/%USERNAME%/%IMAGE_NAME%:%VERSION%" ^
--tag "%REGISTRY%/%USERNAME%/%IMAGE_NAME%:latest" ^
.
if %errorlevel% neq 0 (
echo ❌ Ошибка сборки образа
exit /b 1
)
echo ✅ Образ успешно собран
REM Тестирование образа
echo 🧪 Тестирование образа...
docker run --rm "%REGISTRY%/%USERNAME%/%IMAGE_NAME%:%VERSION%" python -c "import sys; from modules.moysklad_client import MoySkladClient; print('OK')"
if %errorlevel% neq 0 (
echo ❌ Ошибка тестирования
exit /b 1
)
echo ✅ Тестирование пройдено
REM Публикация образа
echo 📤 Публикация образа в registry...
docker push "%REGISTRY%/%USERNAME%/%IMAGE_NAME%:%VERSION%"
docker push "%REGISTRY%/%USERNAME%/%IMAGE_NAME%:latest"
if %errorlevel% neq 0 (
echo ❌ Ошибка публикации образа
exit /b 1
)
echo ✅ Образ успешно опубликован
echo.
echo 📦 Образы доступны:
echo %REGISTRY%/%USERNAME%/%IMAGE_NAME%:%VERSION%
echo %REGISTRY%/%USERNAME%/%IMAGE_NAME%:latest
echo.
echo 🚀 Для деплоя используйте: deploy-prod.bat
pause