MoYang303 commited on
Commit
a8f05ab
·
verified ·
1 Parent(s): aad47ff

Update Dockerfile

Browse files
Files changed (1) hide show
  1. 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: 仅作为最小 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,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=:1
44
  export LIBGL_ALWAYS_SOFTWARE=1
45
  export XDG_RUNTIME_DIR="/home/user/.run"
46
- mkdir -p "$XDG_RUNTIME_DIR" && chmod 700 "$XDG_RUNTIME_DIR"
 
 
 
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
- # ---- 仅启动最小 X(不启动窗口管理器/桌面)----
56
- Xvfb :1 -screen 0 1280x800x24 -nolisten tcp &
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 6099
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"]