Files
ForbiddenStarsApp/scripts/build-push.ps1
T
NotBigGhostandClaude Opus 5 e2d729d339 Бэкап: сервис backup в compose прода и тест-клона, .env.example
docker-compose.yml: сервис backup (образ из реестра, явный environment только с BACKUP_*,
тома данных + backup-data), предупреждение про down -v. docker-compose.test.yml: тот же
образ локальной сборкой, только локальный репозиторий, без расписания, BACKUP_VPS_HOST
принудительно пуст. .env.example: новый блок BACKUP_* (пароль, расписание, хранение,
сжатие, SFTP-пользователь fsbackup — системный backup в Debian/Ubuntu уже занят, ключ
base64, адрес Pi для скриптов ПК); удалены BACKUP_VPS_KEY и BACKUP_KEEP_LOCAL/REMOTE.
build-push: сообщения про третий образ (bake подхватывает сервис сам). #64

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013jBxs9nBCk5nBdTLzcGz91
2026-09-14 01:04:12 +03:00

27 lines
1.3 KiB
PowerShell
Executable File

# Build prod images (app + tunnel + backup) for linux/arm64 (Raspberry Pi) and push to the registry.
# Run on the DEV machine with Docker Desktop / buildx. Registry and tag come from the root
# .env (IMAGE_REGISTRY / IMAGE_TAG) - the same values docker-compose.yml uses.
# Log in to the registry once before running: docker login gitea.arseniev.info
# Keep this file ASCII-only (Windows PowerShell 5.1 mangles non-ASCII without a BOM).
$ErrorActionPreference = "Stop"
$root = Split-Path -Parent $PSScriptRoot
Set-Location $root
# Builder with multi-arch push support (docker-container driver) - create if missing.
docker buildx inspect fsbuilder *> $null
if ($LASTEXITCODE -ne 0) {
docker buildx create --name fsbuilder --driver docker-container | Out-Null
}
# arm64 emulation on an x86 host (usually already present in Docker Desktop; idempotent).
docker run --privileged --rm tonistiigi/binfmt --install arm64 | Out-Null
Write-Host "Building app+tunnel+backup for linux/arm64 and pushing to the registry..." -ForegroundColor Green
docker buildx bake -f docker-compose.yml --builder fsbuilder --set "*.platform=linux/arm64" --push
if ($LASTEXITCODE -ne 0) {
Write-Host "Build/push FAILED (exit $LASTEXITCODE)." -ForegroundColor Red
exit 1
}
Write-Host "Done. On the Pi: docker compose pull && docker compose up -d" -ForegroundColor Green