Update Dockerfile
Browse files- Dockerfile +14 -9
Dockerfile
CHANGED
|
@@ -5,8 +5,8 @@ ENV DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC
|
|
| 5 |
|
| 6 |
# ========= 安装依赖 =========
|
| 7 |
# - dbus: 提供 user session bus
|
| 8 |
-
# - xvfb:
|
| 9 |
-
# - socat: 把 $PORT 代理到 NapCat
|
| 10 |
# - 常见 Electron/原生 .node 运行库 + 中文字体
|
| 11 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 12 |
ca-certificates curl xz-utils \
|
|
@@ -20,6 +20,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
| 20 |
fonts-noto-cjk fonts-wqy-zenhei \
|
| 21 |
&& rm -rf /var/lib/apt/lists/*
|
| 22 |
|
|
|
|
|
|
|
|
|
|
| 23 |
# ========= 创建非 root 用户 =========
|
| 24 |
RUN useradd -m -u 1000 -s /bin/bash user && \
|
| 25 |
mkdir -p /home/user/.config && chown -R user:user /home/user
|
|
@@ -40,22 +43,24 @@ cat >/usr/local/bin/start.sh <<'EOF'
|
|
| 40 |
set -euo pipefail
|
| 41 |
|
| 42 |
# 环境准备
|
| 43 |
-
export DISPLAY=:
|
| 44 |
export LIBGL_ALWAYS_SOFTWARE=1
|
| 45 |
export XDG_RUNTIME_DIR="/home/user/.run"
|
| 46 |
-
|
|
|
|
|
|
|
|
|
|
| 47 |
|
| 48 |
# ---- DBus user session ----
|
| 49 |
-
# (Electron/QQ 需要,使用用户态 session bus)
|
| 50 |
dbus-uuidgen --ensure
|
| 51 |
DBUS_ADDR="unix:path=${XDG_RUNTIME_DIR}/bus"
|
| 52 |
dbus-daemon --fork --session --address="${DBUS_ADDR}"
|
| 53 |
export DBUS_SESSION_BUS_ADDRESS="${DBUS_ADDR}"
|
| 54 |
|
| 55 |
-
# ----
|
| 56 |
-
Xvfb
|
| 57 |
|
| 58 |
-
# ---- 启动 NapCat(WebUI)----
|
| 59 |
cd /opt/napcat/app
|
| 60 |
DEFAULT_FLAGS="--no-sandbox --disable-gpu --disable-dev-shm-usage --in-process-gpu --use-gl=swiftshader"
|
| 61 |
./AppRun ${NAPCAT_FLAGS:-$DEFAULT_FLAGS} &
|
|
@@ -80,7 +85,7 @@ USER user
|
|
| 80 |
WORKDIR /home/user
|
| 81 |
|
| 82 |
# HF 只会暴露 $PORT(默认 7860)
|
| 83 |
-
EXPOSE
|
| 84 |
|
| 85 |
# ========= 启动命令 =========
|
| 86 |
CMD ["/usr/local/bin/start.sh"]
|
|
|
|
| 5 |
|
| 6 |
# ========= 安装依赖 =========
|
| 7 |
# - dbus: 提供 user session bus
|
| 8 |
+
# - xvfb: 最小 X server(无桌面)
|
| 9 |
+
# - socat: 把 $PORT 代理到 NapCat 6099
|
| 10 |
# - 常见 Electron/原生 .node 运行库 + 中文字体
|
| 11 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 12 |
ca-certificates curl xz-utils \
|
|
|
|
| 20 |
fonts-noto-cjk fonts-wqy-zenhei \
|
| 21 |
&& rm -rf /var/lib/apt/lists/*
|
| 22 |
|
| 23 |
+
# 预创建 /tmp/.X11-unix(非 root 不能创建,提前做好;1777 与宿主一致)
|
| 24 |
+
RUN mkdir -p /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix
|
| 25 |
+
|
| 26 |
# ========= 创建非 root 用户 =========
|
| 27 |
RUN useradd -m -u 1000 -s /bin/bash user && \
|
| 28 |
mkdir -p /home/user/.config && chown -R user:user /home/user
|
|
|
|
| 43 |
set -euo pipefail
|
| 44 |
|
| 45 |
# 环境准备
|
| 46 |
+
export DISPLAY=:99
|
| 47 |
export LIBGL_ALWAYS_SOFTWARE=1
|
| 48 |
export XDG_RUNTIME_DIR="/home/user/.run"
|
| 49 |
+
install -d -m 0700 "$XDG_RUNTIME_DIR"
|
| 50 |
+
|
| 51 |
+
# 确保 Xvfb 的 socket 目录存在(非 root 无法自动创建)
|
| 52 |
+
install -d -m 1777 /tmp/.X11-unix
|
| 53 |
|
| 54 |
# ---- DBus user session ----
|
|
|
|
| 55 |
dbus-uuidgen --ensure
|
| 56 |
DBUS_ADDR="unix:path=${XDG_RUNTIME_DIR}/bus"
|
| 57 |
dbus-daemon --fork --session --address="${DBUS_ADDR}"
|
| 58 |
export DBUS_SESSION_BUS_ADDRESS="${DBUS_ADDR}"
|
| 59 |
|
| 60 |
+
# ---- 启动最小 X(不用 xvfb-run)----
|
| 61 |
+
Xvfb ${DISPLAY} -screen 0 1280x800x24 -nolisten tcp &
|
| 62 |
|
| 63 |
+
# ---- 启动 NapCat(WebUI 监听 6099)----
|
| 64 |
cd /opt/napcat/app
|
| 65 |
DEFAULT_FLAGS="--no-sandbox --disable-gpu --disable-dev-shm-usage --in-process-gpu --use-gl=swiftshader"
|
| 66 |
./AppRun ${NAPCAT_FLAGS:-$DEFAULT_FLAGS} &
|
|
|
|
| 85 |
WORKDIR /home/user
|
| 86 |
|
| 87 |
# HF 只会暴露 $PORT(默认 7860)
|
| 88 |
+
EXPOSE 7860
|
| 89 |
|
| 90 |
# ========= 启动命令 =========
|
| 91 |
CMD ["/usr/local/bin/start.sh"]
|