|
|
FROM jlesage/firefox:latest |
|
|
|
|
|
ENV PORT=7860 |
|
|
ENV DISPLAY_WIDTH=1920 |
|
|
ENV DISPLAY_HEIGHT=1080 |
|
|
|
|
|
|
|
|
RUN apk add --no-cache \ |
|
|
python3 \ |
|
|
py3-pip \ |
|
|
socat \ |
|
|
font-noto \ |
|
|
font-noto-cjk \ |
|
|
font-noto-cjk-extra |
|
|
|
|
|
|
|
|
WORKDIR /app |
|
|
RUN python3 -m venv /app/venv |
|
|
ENV PATH="/app/venv/bin:$PATH" |
|
|
|
|
|
RUN pip install --upgrade pip \ |
|
|
&& pip install fastapi uvicorn |
|
|
|
|
|
|
|
|
COPY clipboard_api.py /app/clipboard_api.py |
|
|
|
|
|
EXPOSE 7860 |
|
|
|
|
|
|
|
|
CMD sh -c "\ |
|
|
# 1️⃣ 把 HF 的 7860 转发给 noVNC 的 5800 \ |
|
|
socat TCP-LISTEN:7860,fork TCP:127.0.0.1:5800 & \ |
|
|
\ |
|
|
# 2️⃣ FastAPI 只监听 localhost,不对外暴露 \ |
|
|
uvicorn clipboard_api:app --host 127.0.0.1 --port 8000 & \ |
|
|
\ |
|
|
# 3️⃣ 启动 Firefox/noVNC \ |
|
|
exec /init" |