Обновить Dockerfile

This commit is contained in:
nafer committed 2026-02-24 19:44:02 +00:00
1 parent 92f64a5f92
commit a3b174f04c
1 file changed
+40 -12
+40 -12
View File
@@ -1,19 +1,47 @@
# Используем официальный образ Langflow как базу
FROM langflowai/langflow:1.7.3
USER root
# Устанавливаем системные зависимости для Playwright и browser-use
RUN apt-get update && apt-get install -y \
wget \
gnupg \
libglib2.0-0 \
libnss3 \
libnspr4 \
libdbus-1-3 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libcups2 \
libdrm2 \
libxkbcommon0 \
libxcomposite1 \
libxdamage1 \
libxfixes3 \
libxrandr2 \
libgbm1 \
libasound2 \
libpango-1.0-0 \
libcairo2 \
&& rm -rf /var/lib/apt/lists/*
# 1. Сначала обновляем pip
RUN /app/.venv/bin/python -m pip install --no-cache-dir --upgrade pip
# Устанавливаем Python зависимости
RUN pip install --no-cache-dir \
browser-use \
langchain-community \
playwright \
httpx \
langchain-openai \
openai
# 2. Устанавливаем browser-use, но НЕ трогаем системные зависимости Langflow (pydantic и sqlmodel)
# Мы позволяем pip установить их, но на следующем шаге мы их "полечим"
RUN /app/.venv/bin/python -m pip install --no-cache-dir browser-use langchain-openai
# Устанавливаем Playwright браузеры
RUN playwright install chromium --with-deps
# 3. КРИТИЧЕСКИЙ ШАГ: Переустанавливаем Langflow поверх.
# Это заставит pip откатить несовместимые версии SQLAlchemy/SQLModel к тем, которые нужны Langflow.
RUN /app/.venv/bin/python -m pip install --no-cache-dir langflow --force-reinstall
# Переменные окружения для browserless
ENV BROWSERLESS_API_URL=http://browserless.home
ENV BROWSER_TYPE=chromium
# 4. Исправляем права доступа (используем ID 1000, так как имени может не быть)
RUN chown -R 1000:1000 /app/.venv
# Рабочая директория
WORKDIR /app
# Оставляем запуск от root или не указываем USER, чтобы Dokploy не ругался на отсутствие passwd
# По умолчанию запускаем Langflow
CMD ["langflow", "--host", "0.0.0.0", "--port", "7860"]