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
61 lines
1.7 KiB
Batchfile
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
|