Update Dockerfile
Browse files- Dockerfile +29 -2
Dockerfile
CHANGED
|
@@ -4,8 +4,35 @@ ENV PORT=7860
|
|
| 4 |
ENV DISPLAY_WIDTH=1920
|
| 5 |
ENV DISPLAY_HEIGHT=1080
|
| 6 |
|
| 7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
|
| 9 |
EXPOSE 7860
|
| 10 |
|
| 11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
ENV DISPLAY_WIDTH=1920
|
| 5 |
ENV DISPLAY_HEIGHT=1080
|
| 6 |
|
| 7 |
+
# ---------- 安装 ----------
|
| 8 |
+
RUN apk add --no-cache \
|
| 9 |
+
python3 \
|
| 10 |
+
py3-pip \
|
| 11 |
+
socat \
|
| 12 |
+
font-noto \
|
| 13 |
+
font-noto-cjk \
|
| 14 |
+
font-noto-cjk-extra
|
| 15 |
+
|
| 16 |
+
# ---------- Python venv(PEP 668 解决方案) ----------
|
| 17 |
+
WORKDIR /app
|
| 18 |
+
RUN python3 -m venv /app/venv
|
| 19 |
+
ENV PATH="/app/venv/bin:$PATH"
|
| 20 |
+
|
| 21 |
+
RUN pip install --upgrade pip \
|
| 22 |
+
&& pip install fastapi uvicorn
|
| 23 |
+
|
| 24 |
+
# ---------- FastAPI ----------
|
| 25 |
+
COPY clipboard_api.py /app/clipboard_api.py
|
| 26 |
|
| 27 |
EXPOSE 7860
|
| 28 |
|
| 29 |
+
# ---------- 启动 ----------
|
| 30 |
+
CMD sh -c "\
|
| 31 |
+
# 1️⃣ 把 HF 的 7860 转发给 noVNC 的 5800 \
|
| 32 |
+
socat TCP-LISTEN:7860,fork TCP:127.0.0.1:5800 & \
|
| 33 |
+
\
|
| 34 |
+
# 2️⃣ FastAPI 只监听 localhost,不对外暴露 \
|
| 35 |
+
uvicorn clipboard_api:app --host 127.0.0.1 --port 8000 & \
|
| 36 |
+
\
|
| 37 |
+
# 3️⃣ 启动 Firefox/noVNC \
|
| 38 |
+
exec /init"
|