Files
go-lcg/Dockerfiles/OllamaServer/STRUCTURE.md

144 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📁 Структура проекта OllamaServer
## Файлы
```
Dockerfiles/OllamaServer/
├── Dockerfile # Multi-stage Dockerfile для сборки образа
├── entrypoint.sh # Скрипт запуска LCG и Ollama серверов
├── docker-compose.yml # Docker Compose конфигурация
├── podman-compose.yml # Podman Compose конфигурация
├── Makefile # Команды для сборки и запуска
├── README.md # Полная документация
├── QUICKSTART.md # Быстрый старт
├── STRUCTURE.md # Этот файл
├── .dockerignore # Исключения для Docker build
└── .gitignore # Исключения для Git
```
## Описание файлов
### Dockerfile
Dockerfile, который:
1. Использует готовый образ `ollama/ollama:0.9.5` как базовый
2. Копирует предварительно собранный бинарник LCG из папки `dist/`
3. Выбирает правильный бинарник в зависимости от архитектуры (amd64/arm64)
4. Устанавливает entrypoint.sh для запуска обоих сервисов
5. Настраивает рабочее окружение и переменные окружения
**Важно**: Перед сборкой образа необходимо собрать бинарники с помощью `goreleaser build --snapshot --clean`
### entrypoint.sh
Скрипт запуска, который:
1. Запускает Ollama сервер в фоне
2. Ожидает готовности Ollama API
3. Запускает LCG сервер в фоне
4. Мониторит состояние процессов
5. Корректно обрабатывает сигналы завершения
### docker-compose.yml / podman-compose.yml
Конфигурация для запуска через compose:
- Настройки портов
- Переменные окружения
- Volumes для персистентного хранения
- Healthcheck
### Makefile
Удобные команды для:
- Сборки образа
- Запуска/остановки контейнера
- Просмотра логов
- Работы с compose
### README.md
Полная документация с:
- Описанием функциональности
- Инструкциями по установке
- Настройками переменных окружения
- Примерами использования
- Решением проблем
### QUICKSTART.md
Краткое руководство для быстрого старта.
## Порты
- **8080**: LCG веб-сервер
- **11434**: Ollama API
## Volumes
- `ollama-data`: Данные Ollama (модели)
- `lcg-results`: Результаты генерации команд
- `lcg-prompts`: Системные промпты
- `lcg-config`: Конфигурация LCG
## Переменные окружения
Основные переменные (см. README.md для полного списка):
- `LCG_PROVIDER=ollama`
- `LCG_HOST=http://127.0.0.1:11434/`
- `LCG_MODEL=codegeex4`
- `OLLAMA_HOST=0.0.0.0`
- `OLLAMA_PORT=11434`
## Запуск
### Предварительная подготовка
Перед сборкой образа необходимо собрать бинарники:
```bash
# Из корня проекта
goreleaser build --snapshot --clean
```
Убедитесь, что в папке `dist/` есть бинарники для нужных архитектур.
### Docker
```bash
cd Dockerfiles/OllamaServer
docker-compose up -d
```
### Podman
```bash
cd Dockerfiles/OllamaServer
podman-compose -f podman-compose.yml up -d
```
### Make
```bash
cd Dockerfiles/OllamaServer
make build-all # Собрать бинарники и Docker образ
make compose-up # Запустить через docker-compose
# Или для Podman
make build-all-podman
make podman-compose-up
```
## Архитектура
Контейнер запускает два сервиса:
1. **Ollama** (порт 11434) - LLM сервер
2. **LCG** (порт 8080) - Веб-интерфейс и API
Оба сервиса работают в одном контейнере и общаются через localhost.