MoYang303 commited on
Commit
8ef51c0
·
verified ·
1 Parent(s): e0243a4

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +29 -23
Dockerfile CHANGED
@@ -1,32 +1,31 @@
1
  FROM ubuntu:22.04
2
-
3
- ENV DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC
4
-
5
- # 一次性补齐:
6
- # - Xvfb(无 VNC)
7
- # - AppImage 运行库:libfuse2
8
- # - Electron/Chromium/GTK3 常见运行依赖(涵盖你之前缺的 glib/nspr/nss/atk 等)
 
9
  RUN apt-get update && apt-get install -y --no-install-recommends \
10
- xvfb libfuse2 \
11
- libglib2.0-0 libnspr4 libnss3 libatk1.0-0 libatspi2.0-0 \
12
- libgtk-3-0 libgdk-pixbuf2.0-0 libpango-1.0-0 libcairo2 \
13
- libx11-6 libx11-xcb1 libxext6 libxrender1 libxi6 libxrandr2 \
14
- libxcomposite1 libxdamage1 libxkbcommon0 libxfixes3 \
15
- libxcb1 libxcb-render0 libxcb-shm0 \
16
- libdrm2 libgbm1 \
17
- libxss1 libxtst6 libasound2 \
18
- libsecret-1-0 libnotify4 libdbus-1-3 libgl1 \
19
  && rm -rf /var/lib/apt/lists/*
20
 
21
- # 预创建 X11 socket 目录(非 root 运行时 Xvfb 需要)
22
  RUN mkdir -p /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix
23
 
24
- # 非 root 用户(HF Spaces 默认 UID 1000)
25
  RUN useradd -m -u 1000 -s /bin/bash user
26
  USER user
27
  WORKDIR /home/user
28
 
29
- # 下载并在构建期解包 AppImage(避免运行期 FUSE/CAP_SYS_ADMIN)
30
  ADD --chown=user:user https://github.com/NapNeko/NapCatAppImageBuild/releases/download/v4.8.124/QQ-40990_NapCat-v4.8.124-amd64.AppImage /home/user/QQ.AppImage
31
  RUN chmod +x /home/user/QQ.AppImage && \
32
  /home/user/QQ.AppImage --appimage-extract && \
@@ -36,11 +35,18 @@ RUN chmod +x /home/user/QQ.AppImage && \
36
  # 运行环境
37
  ENV DISPLAY=:1
38
  ENV LIBGL_ALWAYS_SOFTWARE=1
 
 
39
 
40
- # NapCat 自带 Web 服务端口(确保服务监听 0.0.0.0:6099)
41
  EXPOSE 6099
42
 
43
- # 启动:Xvfb 后台 + NapCat 前台(日志直出到控制台)
44
- CMD Xvfb :1 -screen 0 1280x800x24 -nolisten tcp & \
 
 
 
 
45
  sleep 2 && \
46
- exec /home/user/napcat/AppRun ${NAPCAT_FLAGS:-}
 
 
1
  FROM ubuntu:22.04
2
+ ENV DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC LC_ALL=C.UTF-8
3
+
4
+ # 基础/一次性依赖:
5
+ # - xvfb:无头 X
6
+ # - libfuse2:AppImage 运行库(虽然我们构建期解包,但某些 .node 仍会查它)
7
+ # - Electron/GTK/Chromium 运行库(精简集合)
8
+ # - C/C++ 运行时及常见本机扩展依赖:libstdc++6 libgcc-s1 libatomic1 libxshmfence1
9
+ # - dbus-daemon:起一个用户级 session bus,避免 DBus 报错
10
  RUN apt-get update && apt-get install -y --no-install-recommends \
11
+ xvfb libfuse2 dbus \
12
+ libglib2.0-0 libnspr4 libnss3 \
13
+ libatk1.0-0 libatspi2.0-0 libgtk-3-0 libgdk-pixbuf2.0-0 libpango-1.0-0 libcairo2 \
14
+ libx11-6 libx11-xcb1 libxext6 libxrender1 libxi6 libxrandr2 libxcomposite1 libxdamage1 \
15
+ libxkbcommon0 libxfixes3 libxcb1 libxcb-render0 libxcb-shm0 libxss1 libxtst6 \
16
+ libdrm2 libgbm1 libasound2 libsecret-1-0 libnotify4 libdbus-1-3 libgl1 \
17
+ libstdc++6 libgcc-s1 libatomic1 libxshmfence1 \
 
 
18
  && rm -rf /var/lib/apt/lists/*
19
 
20
+ # 预创建 /tmp/.X11-unix 以便非 root 运行 Xvfb
21
  RUN mkdir -p /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix
22
 
23
+ # 非 root 用户
24
  RUN useradd -m -u 1000 -s /bin/bash user
25
  USER user
26
  WORKDIR /home/user
27
 
28
+ # 下载并在构建期解包 AppImage(避免运行期 FUSE)
29
  ADD --chown=user:user https://github.com/NapNeko/NapCatAppImageBuild/releases/download/v4.8.124/QQ-40990_NapCat-v4.8.124-amd64.AppImage /home/user/QQ.AppImage
30
  RUN chmod +x /home/user/QQ.AppImage && \
31
  /home/user/QQ.AppImage --appimage-extract && \
 
35
  # 运行环境
36
  ENV DISPLAY=:1
37
  ENV LIBGL_ALWAYS_SOFTWARE=1
38
+ # XDG_RUNTIME_DIR 供 D-Bus session bus 使用
39
+ ENV XDG_RUNTIME_DIR=/home/user/.run
40
 
41
+ # 端口
42
  EXPOSE 6099
43
 
44
+ # 启动:Xvfb + 用户级 D-Bus + NapCat;日志直出控制台
45
+ CMD mkdir -p "$XDG_RUNTIME_DIR" && chmod 700 "$XDG_RUNTIME_DIR" && \
46
+ Xvfb :1 -screen 0 1280x800x24 -nolisten tcp & \
47
+ # 启动用户级 D-Bus(非 root),并导出会话地址,避免 DBus 报错
48
+ dbus-daemon --session --address=unix:path=$XDG_RUNTIME_DIR/bus --nofork --nopidfile & \
49
+ export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus && \
50
  sleep 2 && \
51
+ # 建议禁用 GPU/沙箱/共享内存占用,避免 Electron 在无 GPU 容器里崩溃
52
+ exec /home/user/napcat/AppRun ${NAPCAT_FLAGS:---no-sandbox --disable-gpu --disable-dev-shm-usage}