mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-17 13:55:08 +00:00
- 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>
5.2 KiB
5.2 KiB
Frappe ERP — развёртывание и обновление
Структура репозитория
frappe_docker/
├── apps.json ← список приложений для образа
├── compose.yaml ← основной docker-compose
├── .env ← конфигурация (не в git, создать из .env.example)
├── .env.example ← шаблон конфигурации
├── Makefile ← все команды управления
├── DEPLOY.md ← эта документация
│
├── images/
│ ├── layered/Containerfile ← сборка на базе frappe/build (быстро)
│ └── custom/Containerfile ← сборка с нуля (полный контроль)
│
├── overrides/
│ ├── compose.assets-volume.yaml ← общий том assets (обязателен)
│ ├── compose.mariadb.yaml ← встроенная MariaDB
│ └── ... ← другие оверрайды (proxy, ssl, etc.)
│
└── scripts/
├── build.sh ← сборка образа
├── update-apps.sh ← проверка обновлений приложений
└── new-site.sh ← создание нового сайта
Первый запуск
# 1. Создать конфигурацию
cp .env.example .env
# Отредактировать .env: задать DB_PASSWORD, FRAPPE_SITE_NAME_HEADER и т.д.
# 2. Собрать образ с приложениями из apps.json
make build
# 3. Запустить стек
make up
# 4. Создать сайт (если ещё не создан)
./scripts/new-site.sh erp.local YourAdminPassword
Обновление приложений
Шаг 1 — проверить доступные обновления
./scripts/update-apps.sh
Скрипт покажет последние коммиты каждого приложения из apps.json.
Шаг 2 — обновить apps.json при необходимости
Если нужна конкретная ветка или тег:
// apps.json
[
{ "url": "https://github.com/frappe/erpnext", "branch": "version-16" },
{ "url": "https://github.com/frappe/crm", "branch": "main" }
]
Шаг 3 — полный цикл обновления
make update
Это выполнит:
make build— пересборка образа frappe-custom:v16docker compose up -d --no-deps— замена контейнеров без даунтайма DB/Redisbench migrate— применение миграций БДbench build— пересборка JS/CSS assets- Перезапуск nginx
Частичные операции
make migrate # только миграции (после ручного обновления)
make assets # только пересборка JS/CSS
make restart # перезапуск backend/frontend
make backup # резервная копия сайта
make logs # логи backend в реальном времени
make shell # bash в контейнере backend
make ps # статус всех контейнеров
Смена версии (например, v16 → v17)
# 1. Обновить ветки в apps.json
# 2. Пересобрать с новым тегом
make build TAG=v17
# 3. Обновить .env
# CUSTOM_TAG=v17
# 4. Пересоздать стек
make up
make migrate
Добавление нового приложения
- Добавить в
apps.json:
{ "url": "https://github.com/frappe/hrms", "branch": "version-16" }
- Пересобрать образ и обновить:
make update
- Установить на сайт:
make shell
bench --site erp.local install-app hrms
Переменные окружения (.env)
| Переменная | Описание | Пример |
|---|---|---|
CUSTOM_IMAGE |
Имя Docker-образа | frappe-custom |
CUSTOM_TAG |
Тег образа | v16 |
PULL_POLICY |
missing — использовать локальный образ |
missing |
DB_PASSWORD |
Пароль MariaDB | (сильный пароль) |
FRAPPE_SITE_NAME_HEADER |
Имя сайта | erp.local |
HTTP_PUBLISH_PORT |
Внешний порт HTTP | 8090 |
BACKUP_CRONSTRING |
Расписание бэкапов | @every 6h |