Files
go-lcg/Dockerfiles/OllamaServer/entrypoint.sh

105 lines
3.1 KiB
Bash
Executable File
Raw 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.

#!/bin/bash
set -e
# Цвета для вывода
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Функция для логирования
log() {
echo -e "${GREEN}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1"
}
error() {
echo -e "${RED}[ERROR]${NC} $1" >&2
}
warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
# Обработка сигналов для корректного завершения
cleanup() {
log "Получен сигнал завершения, останавливаем сервисы..."
if [ ! -z "$LCG_PID" ]; then
kill $LCG_PID 2>/dev/null || true
wait $LCG_PID 2>/dev/null || true
fi
log "Сервисы остановлены"
exit 0
}
trap cleanup SIGTERM SIGINT
# Проверка наличия бинарника lcg
if [ ! -f /usr/local/bin/lcg ]; then
error "Бинарник lcg не найден в /usr/local/bin/lcg"
exit 1
fi
# Создаем необходимые директории
mkdir -p "${LCG_RESULT_FOLDER:-/app/data/results}"
mkdir -p "${LCG_PROMPT_FOLDER:-/app/data/prompts}"
mkdir -p "${LCG_CONFIG_FOLDER:-/app/data/config}"
# Настройка переменных окружения для Ollama
export OLLAMA_HOST="${OLLAMA_HOST:-0.0.0.0}"
export OLLAMA_PORT="${OLLAMA_PORT:-11434}"
export OLLAMA_ORIGINS="*"
# Настройка переменных окружения для LCG
export LCG_PROVIDER="${LCG_PROVIDER:-ollama}"
export LCG_HOST="${LCG_HOST:-http://0.0.0.0:11434/}"
export LCG_MODEL="${LCG_MODEL:-qwen2.5-coder:1.5b}"
export LCG_RESULT_FOLDER="${LCG_RESULT_FOLDER:-/app/data/results}"
export LCG_PROMPT_FOLDER="${LCG_PROMPT_FOLDER:-/app/data/prompts}"
export LCG_CONFIG_FOLDER="${LCG_CONFIG_FOLDER:-/app/data/config}"
export LCG_SERVER_HOST="${LCG_SERVER_HOST:-0.0.0.0}"
export LCG_SERVER_PORT="${LCG_SERVER_PORT:-8080}"
export LCG_SERVER_ALLOW_HTTP="${LCG_SERVER_ALLOW_HTTP:-false}"
export LCG_FORCE_NO_CSRF="${LCG_FORCE_NO_CSRF:-false}"
export LCG_CSRF_DEBUG_FILE="${LCG_CSRF_DEBUG_FILE:-/app/data/csrf-debug.log}"
if [ "$LCG_FORCE_NO_CSRF" = "true" ]; then
info "CSRF проверка отключена через LCG_FORCE_NO_CSRF"
fi
log "=========================================="
log "Запуск LCG с Ollama сервером"
log "=========================================="
info "LCG Provider: $LCG_PROVIDER"
info "LCG Host: $LCG_HOST"
info "LCG Model: $LCG_MODEL"
info "LCG Server: http://${LCG_SERVER_HOST}:${LCG_SERVER_PORT}"
info "Ollama Host: $OLLAMA_HOST:$OLLAMA_PORT"
log "=========================================="
log "Запуск LCG сервера..."
/usr/local/bin/lcg serve \
--host "${LCG_SERVER_HOST}" \
--port "${LCG_SERVER_PORT}" &
LCG_PID=$!
# Ждем, пока LCG запустится
sleep 3
# Проверяем, что LCG запущен
if ! kill -0 $LCG_PID 2>/dev/null; then
error "LCG сервер не запустился"
exit 1
fi
log "LCG сервер запущен на http://${LCG_SERVER_HOST}:${LCG_SERVER_PORT}"
# Запускаем переданные аргументы
exec "$@"