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

4.5 KiB
Raw Permalink Blame History

📁 Структура проекта 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

Запуск

Предварительная подготовка

Перед сборкой образа необходимо собрать бинарники:

# Из корня проекта
goreleaser build --snapshot --clean

Убедитесь, что в папке dist/ есть бинарники для нужных архитектур.

Docker

cd Dockerfiles/OllamaServer
docker-compose up -d

Podman

cd Dockerfiles/OllamaServer
podman-compose -f podman-compose.yml up -d

Make

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.