File size: 2,662 Bytes
dd0f64a b2031a9 dd0f64a f9c817e dd0f64a cf57e4e b2031a9 f9c817e dd0f64a b2031a9 dd0f64a f9c817e b2031a9 dd0f64a f9c817e b2031a9 dd0f64a f9c817e b2031a9 f9c817e b2031a9 f9c817e b2031a9 dd0f64a f9c817e cf57e4e f9c817e b2031a9 dd0f64a f9c817e b2031a9 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# β Dockerfile β Cloudflare AI API β
# β Stack: Python 3.11 Β· FastAPI Β· Chrome Β· Xvfb β
# β Port: 7860 β
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
FROM python:3.11-slim
ENV DEBIAN_FRONTEND=noninteractive \
PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# System deps
RUN apt-get update && apt-get install -y --no-install-recommends \
xvfb \
x11-utils \
wget \
ca-certificates \
gnupg \
curl \
libx11-6 \
libx11-xcb1 \
libxcb1 \
libxcomposite1 \
libxcursor1 \
libxdamage1 \
libxext6 \
libxfixes3 \
libxi6 \
libxrandr2 \
libxrender1 \
libxss1 \
libxtst6 \
libglib2.0-0 \
libgtk-3-0 \
libnspr4 \
libnss3 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libdrm2 \
libgbm1 \
libcups2 \
libasound2 \
libpango-1.0-0 \
libpangocairo-1.0-0 \
fonts-liberation \
xdg-utils \
lsb-release \
procps \
&& rm -rf /var/lib/apt/lists/*
# Google Chrome stable
RUN wget -q -O /tmp/chrome.deb \
https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
&& apt-get update \
&& apt-get install -y --no-install-recommends /tmp/chrome.deb \
&& rm -f /tmp/chrome.deb \
&& rm -rf /var/lib/apt/lists/* \
&& google-chrome --version
# Pre-create X11 socket directory
RUN mkdir -p /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix
WORKDIR /app
# Python deps
COPY requirements.txt .
RUN pip install --no-cache-dir --upgrade pip \
&& pip install --no-cache-dir -r requirements.txt
# App source
COPY cloudflare_provider.py server.py entrypoint.sh ./
# User + permissions
RUN useradd -m -u 1000 appuser \
&& mkdir -p /app/cache \
&& chown -R appuser:appuser /app \
&& chmod +x /app/entrypoint.sh \
&& chmod 1777 /tmp/.X11-unix
USER appuser
ENV DISPLAY=:99 \
XVFB_EXTERNAL=1 \
POOL_SIZE=2 \
PORT=7860 \
HOST=0.0.0.0 \
HEALTH_INTERVAL=60 \
DEFAULT_MODEL=@cf/moonshotai/kimi-k2.5
EXPOSE 7860
CMD ["/app/entrypoint.sh"] |