Files
ForbiddenStarsApp/scripts/build-push.sh
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

25 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# Сборка прод-образов (app + tunnel + backup) под linux/arm64 для Raspberry Pi и пуш в реестр.
# Запускается на машине РАЗРАБОТКИ с Docker Desktop/buildx (не на Pi).
# Реестр и тег берутся из корневого .env (IMAGE_REGISTRY / IMAGE_TAG) — те же, что в
# docker-compose.yml. Перед запуском один раз залогиниться в реестр:
# docker login gitea.arseniev.info
set -euo pipefail
PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
cd "$PROJECT_DIR"
# Билдер с поддержкой push разных архитектур (driver docker-container) — создаём при отсутствии.
if ! docker buildx inspect fsbuilder >/dev/null 2>&1; then
docker buildx create --name fsbuilder --driver docker-container >/dev/null
fi
# Эмуляция arm64 на x86-хосте (в Docker Desktop обычно уже стоит; команда идемпотентна).
docker run --privileged --rm tonistiigi/binfmt --install arm64 >/dev/null
echo "[build-push] Сборка app+tunnel+backup под linux/arm64 и пуш в реестр…"
# bake читает docker-compose.yml: контексты build: и теги image: (с подстановкой из .env).
docker buildx bake -f docker-compose.yml --builder fsbuilder --set "*.platform=linux/arm64" --push
echo "[build-push] Готово. На Pi: docker compose pull && docker compose up -d"