frappe_docker/scripts/build.sh
abounoone c60ecbbabc Add deployment tooling: Makefile, scripts, docs
- Makefile: единые команды build/up/update/migrate/assets/backup/shell
- scripts/build.sh: сборка образа с apps.json → base64
- scripts/update-apps.sh: проверка последних коммитов приложений через GitHub API
- scripts/new-site.sh: создание нового сайта со всеми приложениями
- .env.example: шаблон конфигурации с комментариями
- DEPLOY.md: документация по развёртыванию и обновлению

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 08:56:08 +00:00

48 lines
1.8 KiB
Bash
Executable file

#!/usr/bin/env bash
# ============================================================
# Сборка образа frappe-custom
# Использование: ./scripts/build.sh [tag]
# По умолчанию: tag = v16
# ============================================================
set -euo pipefail
TAG="${1:-v16}"
FRAPPE_BRANCH="${FRAPPE_BRANCH:-version-16}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_DIR="$(dirname "$SCRIPT_DIR")"
echo "╔══════════════════════════════════════════════╗"
echo " Сборка frappe-custom:${TAG}"
echo " Ветка Frappe : ${FRAPPE_BRANCH}"
echo " Репозиторий : ${REPO_DIR}"
echo "╚══════════════════════════════════════════════╝"
cd "$REPO_DIR"
# Проверяем apps.json
if [ ! -f apps.json ]; then
echo "✗ Файл apps.json не найден"
exit 1
fi
echo "→ Приложения из apps.json:"
python3 -c "import json; [print(' -', a['url'].split('/')[-1], '@', a['branch']) for a in json.load(open('apps.json'))]"
# Кодируем apps.json в base64
APPS_JSON_B64=$(base64 -w 0 apps.json)
echo ""
echo "→ Запуск docker build..."
docker build \
--build-arg APPS_JSON_BASE64="$APPS_JSON_B64" \
--build-arg FRAPPE_BRANCH="$FRAPPE_BRANCH" \
-t "frappe-custom:${TAG}" \
-f images/layered/Containerfile \
.
echo ""
echo "✓ Образ frappe-custom:${TAG} собран"
echo ""
echo "Следующий шаг:"
echo " make update # пересоздать контейнеры, мигрировать БД, пересобрать assets"
echo " make up # просто запустить (если контейнеры не существуют)"