diff --git a/Dockerfile b/Dockerfile index 8141562..74dea6b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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 \ No newline at end of file +# По умолчанию запускаем Langflow +CMD ["langflow", "--host", "0.0.0.0", "--port", "7860"]