38 lines
878 B
Text
38 lines
878 B
Text
|
|
FROM python:3.12-slim-bookworm
|
||
|
|
|
||
|
|
# Install Chromium and dependencies for headless browser
|
||
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||
|
|
chromium \
|
||
|
|
chromium-sandbox \
|
||
|
|
fonts-liberation \
|
||
|
|
libnss3 \
|
||
|
|
libatk-bridge2.0-0 \
|
||
|
|
libdrm2 \
|
||
|
|
libxkbcommon0 \
|
||
|
|
libgbm1 \
|
||
|
|
libasound2 \
|
||
|
|
libatspi2.0-0 \
|
||
|
|
libgtk-3-0 \
|
||
|
|
&& rm -rf /var/lib/apt/lists/*
|
||
|
|
|
||
|
|
# Point pyppeteer to system Chromium
|
||
|
|
ENV PYPPETEER_CHROMIUM_REVISION=0
|
||
|
|
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
|
||
|
|
|
||
|
|
WORKDIR /app
|
||
|
|
|
||
|
|
COPY requirements.txt .
|
||
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
||
|
|
|
||
|
|
COPY puppeteer_mcp.py .
|
||
|
|
COPY entrypoint.py .
|
||
|
|
|
||
|
|
ENV PORT=8800
|
||
|
|
|
||
|
|
EXPOSE 8800
|
||
|
|
|
||
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s \
|
||
|
|
CMD python3 -c "import urllib.request; urllib.request.urlopen('http://localhost:8800/mcp', timeout=5)"
|
||
|
|
|
||
|
|
CMD ["python3", "entrypoint.py"]
|