agent-browser / Dockerfile
anileo1's picture
Use Chromium in Docker and configure driver
29889d7
Raw
History Blame Contribute Delete
1.12 kB
FROM python:3.11-slim
# Install Chromium (much faster than google-chrome-stable, ~150MB vs ~400MB)
RUN apt-get update && apt-get install -y --no-install-recommends \
chromium chromium-driver \
# Minimal runtime deps for headless Chromium
fonts-liberation libatk-bridge2.0-0 libatk1.0-0 libcups2 libdbus-1-3 \
libdrm2 libgbm1 libnss3 libxcomposite1 libxdamage1 libxrandr2 \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# Tell Selenium/Helium to use the Chromium binary
ENV CHROME_BIN=/usr/bin/chromium
ENV CHROMEDRIVER_PATH=/usr/bin/chromedriver
# Install uv
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
WORKDIR /app
# Install dependencies (cached layer — only rebuilds when pyproject.toml/uv.lock change)
COPY pyproject.toml uv.lock .python-version ./
RUN uv sync --no-dev --frozen
# Copy application code
COPY app/ app/
COPY frontend/ frontend/
# Create data directory for DuckDB
RUN mkdir -p data
EXPOSE 7860
# Run directly from the venv instead of `uv run` (avoids re-resolution overhead)
CMD [".venv/bin/uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]