Files
DLE/EXPORT-TEMPLATE.md

8.9 KiB
Raw Blame History

🚀 Экспорт шаблона приложения в GitHub

Цель

Экспортировать все образы и тома как файлы в GitHub репозиторий для создания полного шаблона приложения.

📋 Команды для экспорта

1. Создать папки для данных

mkdir -p ./docker-data/images
mkdir -p ./docker-data/volumes

2. Экспортировать образы в файлы

# Backend образ
docker save digital_legal_entitydle-backend:latest -o ./docker-data/images/backend.tar

# Frontend образ
docker save digital_legal_entitydle-frontend:latest -o ./docker-data/images/frontend.tar

# Vector Search образ
docker save digital_legal_entitydle-vector-search:latest -o ./docker-data/images/vector-search.tar

# Ollama образ
docker save digital_legal_entitydle-ollama:latest -o ./docker-data/images/ollama.tar

# WebSSH Agent образ
docker save digital_legal_entitydle-webssh-agent:latest -o ./docker-data/images/webssh-agent.tar

3. Экспортировать тома в файлы

# PostgreSQL данные
docker run --rm -v digital_legal_entitydle_postgres_data:/source -v $(pwd)/docker-data/volumes:/backup alpine tar czf /backup/postgres_data.tar.gz -C /source .

# Ollama данные
docker run --rm -v digital_legal_entitydle_ollama_data:/source -v $(pwd)/docker-data/volumes:/backup alpine tar czf /backup/ollama_data.tar.gz -C /source .

# Vector Search данные
docker run --rm -v digital_legal_entitydle_vector_search_data:/source -v $(pwd)/docker-data/volumes:/backup alpine tar czf /backup/vector_search_data.tar.gz -C /source .

# Backend node_modules
docker run --rm -v digital_legal_entitydle_backend_node_modules:/source -v $(pwd)/docker-data/volumes:/backup alpine tar czf /backup/backend_node_modules.tar.gz -C /source .

# Frontend node_modules
docker run --rm -v digital_legal_entitydle_frontend_node_modules:/source -v $(pwd)/docker-data/volumes:/backup alpine tar czf /backup/frontend_node_modules.tar.gz -C /source .

4. Создать архив для GitHub Release

# Создать сжатый архив
tar -czf dle-template.tar.gz docker-data/

# Проверить размер
ls -lh dle-template.tar.gz
# Ожидаемый размер: ~5.3GB

5. Создать GitHub Release

# Создать тег версии
git tag v1.0.0
git push origin v1.0.0

# GitHub автоматически создаст Release
# Затем вручную загрузить dle-template.tar.gz в Release

📊 Результат

После выполнения всех команд:

  • GitHub Release с архивом dle-template.tar.gz (5.3GB)
  • Все образы как файлы (.tar) внутри архива
  • Все тома как файлы (.tar.gz) внутри архива
  • Полный шаблон приложения готов к скачиванию

🚀 Использование шаблона

Для пользователей:

Автоматическая установка (рекомендуется):

# Скачать и запустить скрипт установки
curl -fsSL https://raw.githubusercontent.com/VC-HB3-Accelerator/DLE/main/setup-template.sh | bash

Ручная установка:

# 1. Клонировать репозиторий
git clone https://github.com/VC-HB3-Accelerator/DLE.git
cd DLE

# 2. Скачать архив из GitHub Release
# Перейти на страницу Release и скачать dle-template.tar.gz (5.3GB)

# 3. Распаковать архив
tar -xzf dle-template.tar.gz

# 4. Импортировать образы
docker load -i docker-data/images/backend.tar
docker load -i docker-data/images/frontend.tar
docker load -i docker-data/images/vector-search.tar
docker load -i docker-data/images/ollama.tar
docker load -i docker-data/images/webssh-agent.tar

# 5. Создать и импортировать тома
docker volume create digital_legal_entitydle_postgres_data
docker volume create digital_legal_entitydle_ollama_data
docker volume create digital_legal_entitydle_vector_search_data
docker volume create digital_legal_entitydle_backend_node_modules
docker volume create digital_legal_entitydle_frontend_node_modules

docker run --rm -v digital_legal_entitydle_postgres_data:/target -v $(pwd)/docker-data/volumes:/backup alpine tar xzf /backup/postgres_data.tar.gz -C /target
docker run --rm -v digital_legal_entitydle_ollama_data:/target -v $(pwd)/docker-data/volumes:/backup alpine tar xzf /backup/ollama_data.tar.gz -C /target
docker run --rm -v digital_legal_entitydle_vector_search_data:/target -v $(pwd)/docker-data/volumes:/backup alpine tar xzf /backup/vector_search_data.tar.gz -C /target
docker run --rm -v digital_legal_entitydle_backend_node_modules:/target -v $(pwd)/docker-data/volumes:/backup alpine tar xzf /backup/backend_node_modules.tar.gz -C /target
docker run --rm -v digital_legal_entitydle_frontend_node_modules:/target -v $(pwd)/docker-data/volumes:/backup alpine tar xzf /backup/frontend_node_modules.tar.gz -C /target

# 6. Запустить приложение
docker-compose up -d

📊 Точные размеры экспорта

Образы (5 файлов .tar):

  • backend.tar - 36MB
  • frontend.tar - 45MB
  • vector-search.tar - 40MB
  • ollama.tar - 46MB
  • webssh-agent.tar - 47MB
  • Итого образы: ~215MB

Volumes (5 файлов .tar.gz):

  • postgres_data.tar.gz - 28MB
  • ollama_data.tar.gz - 5.2GB (самый большой!)
  • vector_search_data.tar.gz - 87 байт (пустой)
  • backend_node_modules.tar.gz - 127MB
  • frontend_node_modules.tar.gz - 40MB
  • Итого volumes: ~5.4GB

ОБЩИЙ РАЗМЕР: ~5.6GB

🚨 Проблема с GitHub

GitHub имеет лимиты:

  • Максимум 100MB на файл
  • Максимум 1GB на репозиторий (бесплатно)
  • Наш архив 5.3GB превышает лимиты!

💡 Варианты решения для хранения архива

1. GitHub Releases (рекомендуется)

# Создать архив
tar -czf dle-template.tar.gz docker-data/

# Создать тег и Release
git tag v1.0.0
git push origin v1.0.0

# Загрузить dle-template.tar.gz в GitHub Release
# Лимит: 2GB на файл, 10GB на релиз

Плюсы:

  • Простота настройки
  • Нет лимитов размера (до 2GB на файл)
  • Версионирование релизов
  • Отдельно от кода репозитория

Минусы:

  • Пользователи скачивают архив отдельно
  • Нужно обновлять инструкции

2. Git LFS (Large File Storage)

# Настроить LFS
git lfs track "*.tar" "*.tar.gz"
git add .gitattributes
git add docker-data/

Плюсы: Автоматическое управление большими файлами Минусы: Лимит 1GB (бесплатно), нужен Git LFS

3. Внешние хранилища

  • Google Drive - 15GB бесплатно
  • Dropbox - 2GB бесплатно
  • OneDrive - 5GB бесплатно
  • Mega - 20GB бесплатно

4. Облачные хранилища

  • AWS S3 - платно, но надежно
  • Google Cloud Storage - платно
  • Azure Blob - платно

5. Разделение на части

# Разделить архив на части по 1GB
split -b 1G dle-template.tar.gz dle-template-part-
# Результат: dle-template-part-aa, dle-template-part-ab, etc.

📁 Структура после экспорта

docker-data/
├── images/
│   ├── backend.tar
│   ├── frontend.tar
│   ├── vector-search.tar
│   ├── ollama.tar
│   └── webssh-agent.tar
└── volumes/
    ├── postgres_data.tar.gz
    ├── ollama_data.tar.gz
    ├── vector_search_data.tar.gz
    ├── backend_node_modules.tar.gz
    └── frontend_node_modules.tar.gz

Готово!

После выполнения всех команд у вас будет:

  • GitHub Release с архивом dle-template.tar.gz (5.3GB)
  • Полный шаблон приложения готов к скачиванию
  • Автоматический скрипт установки для пользователей
  • Ручные инструкции для продвинутых пользователей

Пользователи могут:

  1. Автоматически: curl -fsSL ... | bash
  2. Вручную: Скачать архив из Release и следовать инструкциям