9.7 KiB
🐳 LCG с Ollama Server - Docker/Podman контейнер
Этот образ содержит Linux Command GPT (LCG) и Ollama сервер, работающие вместе в одном контейнере.
Поддерживается запуск через Docker и Podman.
📋 Описание
Контейнер автоматически запускает:
- Ollama сервер (v0.9.5) на порту 11434
- LCG веб-сервер на порту 8080
Ollama используется как провайдер LLM для генерации Linux команд.
🚀 Быстрый старт
Сборка образа
Docker
# Из корня проекта
docker build -f Dockerfiles/OllamaServer/Dockerfile -t lcg-ollama:latest .
Podman
# Из корня проекта
podman build -f Dockerfiles/OllamaServer/Dockerfile -t lcg-ollama:latest .
Запуск контейнера
Docker
docker run -d \
--name lcg-ollama \
-p 8080:8080 \
-p 11434:11434 \
lcg-ollama:latest
Podman
podman run -d \
--name lcg-ollama \
-p 8080:8080 \
-p 11434:11434 \
lcg-ollama:latest
Использование docker-compose / podman-compose
Docker Compose
cd Dockerfiles/OllamaServer
docker-compose up -d
Podman Compose
cd Dockerfiles/OllamaServer
podman-compose -f podman-compose.yml up -d
Или используйте встроенную поддержку Podman:
cd Dockerfiles/OllamaServer
podman play kube podman-compose.yml
🌐 Доступ к сервисам
После запуска контейнера доступны:
- LCG веб-интерфейс: http://localhost:8080
- Ollama API: http://localhost:11434
⚙️ Переменные окружения
Настройки LCG
| Переменная | Значение по умолчанию | Описание |
|---|---|---|
LCG_PROVIDER |
ollama |
Тип провайдера |
LCG_HOST |
http://127.0.0.1:11434/ |
URL Ollama API |
LCG_MODEL |
codegeex4 |
Модель для использования |
LCG_SERVER_HOST |
0.0.0.0 |
Хост LCG сервера |
LCG_SERVER_PORT |
8080 |
Порт LCG сервера |
LCG_SERVER_ALLOW_HTTP |
true |
Разрешить HTTP |
LCG_RESULT_FOLDER |
/app/data/results |
Папка для результатов |
LCG_PROMPT_FOLDER |
/app/data/prompts |
Папка для промптов |
LCG_CONFIG_FOLDER |
/app/data/config |
Папка для конфигурации |
Настройки Ollama
| Переменная | Значение по умолчанию | Описание |
|---|---|---|
OLLAMA_HOST |
127.0.0.1 |
Хост Ollama сервера |
OLLAMA_PORT |
11434 |
Порт Ollama сервера |
Безопасность
| Переменная | Значение по умолчанию | Описание |
|---|---|---|
LCG_SERVER_REQUIRE_AUTH |
false |
Требовать аутентификацию |
LCG_SERVER_PASSWORD |
admin#123456 |
Пароль для аутентификации |
📦 Volumes
Рекомендуется монтировать volumes для персистентного хранения данных:
docker run -d \
--name lcg-ollama \
-p 8080:8080 \
-p 11434:11434 \
-v ollama-data:/home/ollama/.ollama \
-v lcg-results:/app/data/results \
-v lcg-prompts:/app/data/prompts \
-v lcg-config:/app/data/config \
lcg-ollama:latest
Volumes описание
ollama-data: Модели и данные Ollamalcg-results: Результаты генерации командlcg-prompts: Системные промптыlcg-config: Конфигурация LCG
🔧 Примеры использования
Запуск с кастомной моделью
docker run -d \
--name lcg-ollama \
-p 8080:8080 \
-p 11434:11434 \
-e LCG_MODEL=llama3:8b \
lcg-ollama:latest
Запуск с аутентификацией
docker run -d \
--name lcg-ollama \
-p 8080:8080 \
-p 11434:11434 \
-e LCG_SERVER_REQUIRE_AUTH=true \
-e LCG_SERVER_PASSWORD=my_secure_password \
lcg-ollama:latest
Запуск с кастомным портом
docker run -d \
--name lcg-ollama \
-p 9000:9000 \
-p 11434:11434 \
-e LCG_SERVER_PORT=9000 \
lcg-ollama:latest
📥 Загрузка моделей Ollama
После запуска контейнера можно загрузить модели:
# Подключиться к контейнеру
docker exec -it lcg-ollama sh
# Загрузить модель
ollama pull codegeex4
ollama pull llama3:8b
ollama pull qwen2.5:7b
Или извне контейнера:
# Убедитесь, что Ollama доступен извне (OLLAMA_HOST=0.0.0.0)
docker exec lcg-ollama ollama pull codegeex4
🔍 Проверка работоспособности
Проверка Ollama
# Проверка health
curl http://localhost:11434/api/tags
# Список моделей
curl http://localhost:11434/api/tags | jq '.models'
Проверка LCG
# Проверка веб-интерфейса
curl http://localhost:8080/
# Проверка через API
curl -X POST http://localhost:8080/api/execute \
-H "Content-Type: application/json" \
-d '{"prompt": "создать директорию test"}'
🐧 Podman специфичные инструкции
Запуск с Podman
Podman работает аналогично Docker, но есть несколько отличий:
Создание сетей (если нужно)
podman network create lcg-network
Запуск с сетью
podman run -d \
--name lcg-ollama \
--network lcg-network \
-p 8080:8080 \
-p 11434:11434 \
lcg-ollama:latest
Запуск в rootless режиме
Podman по умолчанию работает в rootless режиме, что повышает безопасность:
# Не требует sudo
podman run -d \
--name lcg-ollama \
-p 8080:8080 \
-p 11434:11434 \
lcg-ollama:latest
Использование systemd для автозапуска
Создайте systemd unit файл:
# Генерируем unit файл
podman generate systemd --name lcg-ollama --files
# Копируем в systemd
sudo cp container-lcg-ollama.service /etc/systemd/system/
# Включаем автозапуск
sudo systemctl enable container-lcg-ollama.service
sudo systemctl start container-lcg-ollama.service
Проверка статуса
# Статус контейнера
podman ps
# Логи
podman logs lcg-ollama
# Логи в реальном времени
podman logs -f lcg-ollama
🐛 Отладка
Просмотр логов
Docker
# Логи контейнера
docker logs lcg-ollama
# Логи в реальном времени
docker logs -f lcg-ollama
Podman
# Логи контейнера
podman logs lcg-ollama
# Логи в реальном времени
podman logs -f lcg-ollama
Подключение к контейнеру
Docker
docker exec -it lcg-ollama sh
Podman
podman exec -it lcg-ollama sh
Проверка процессов
Docker
docker exec lcg-ollama ps aux
Podman
podman exec lcg-ollama ps aux
🔒 Безопасность
Рекомендации для продакшена
-
Используйте аутентификацию:
-e LCG_SERVER_REQUIRE_AUTH=true -e LCG_SERVER_PASSWORD=strong_password -
Ограничьте доступ к портам:
- Используйте firewall правила
- Не экспортируйте порты на публичный интерфейс
-
Используйте HTTPS:
- Настройте reverse proxy (nginx, traefik)
- Используйте SSL сертификаты
-
Ограничьте ресурсы:
docker run -d \ --name lcg-ollama \ --memory="4g" \ --cpus="2" \ lcg-ollama:latest
📊 Мониторинг
Healthcheck
Контейнер включает healthcheck, который проверяет доступность LCG сервера:
docker inspect lcg-ollama | jq '.[0].State.Health'
Метрики
LCG предоставляет Prometheus метрики на /metrics endpoint (если включено).
🚀 Production Deployment
С docker-compose
cd Dockerfiles/OllamaServer
docker-compose up -d
С Kubernetes
Используйте манифесты из папки deploy/ или kustomize/.
📝 Примечания
- Ollama версия: 0.9.5
- LCG версия: см. VERSION.txt
- Минимальные требования: 2GB RAM, 2 CPU cores
- Рекомендуется: 4GB+ RAM для больших моделей
🔗 Полезные ссылки
❓ Поддержка
При возникновении проблем:
- Проверьте логи:
docker logs lcg-ollama - Проверьте переменные окружения
- Убедитесь, что порты не заняты
- Проверьте, что модели загружены в Ollama