# Используем официальный Ollama образ как базовый FROM ollama/ollama:latest # Устанавливаем необходимые системные зависимости RUN apt-get update && apt-get install -y \ curl \ python3-pip \ bash \ && rm -rf /var/lib/apt/lists/* # Создаём не-root пользователя для повышения безопасности RUN useradd -m -u 1000 user # Переключаемся на созданного пользователя USER user # Устанавливаем переменные окружения ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH \ OLLAMA_HOST=0.0.0.0 \ PYTHONUNBUFFERED=1 # Устанавливаем рабочую директорию WORKDIR /home/user/app # Копируем файлы приложения в контейнер с правильными правами COPY --chown=user:user . /home/user/app/ # Устанавливаем Python зависимости RUN pip3 install --upgrade pip RUN pip3 install -r requirements.txt # Запускаем Ollama сервер в фоновом режиме, ждем, загружаем модель и останавливаем сервер RUN bash -c "ollama serve & \ sleep 15 && \ ollama pull llama3.1 && \ pkill ollama" # Копируем скрипт entrypoint.sh в контейнер COPY --chown=user:user entrypoint.sh /home/user/app/entrypoint.sh # Делаем скрипт исполняемым RUN chmod +x /home/user/app/entrypoint.sh # Экспонируем необходимые порты EXPOSE 11434 7860 # Переопределяем ENTRYPOINT для запуска собственного скрипта ENTRYPOINT ["/home/user/app/entrypoint.sh"]