Update Dockerfile
Browse files- Dockerfile +29 -23
Dockerfile
CHANGED
|
@@ -1,32 +1,31 @@
|
|
| 1 |
FROM ubuntu:22.04
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
#
|
| 6 |
-
# -
|
| 7 |
-
# -
|
| 8 |
-
# -
|
|
|
|
| 9 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 10 |
-
xvfb libfuse2 \
|
| 11 |
-
libglib2.0-0 libnspr4 libnss3
|
| 12 |
-
libgtk-3-0 libgdk-pixbuf2.0-0 libpango-1.0-0 libcairo2 \
|
| 13 |
-
libx11-6 libx11-xcb1 libxext6 libxrender1 libxi6 libxrandr2 \
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
libxss1 libxtst6 libasound2 \
|
| 18 |
-
libsecret-1-0 libnotify4 libdbus-1-3 libgl1 \
|
| 19 |
&& rm -rf /var/lib/apt/lists/*
|
| 20 |
|
| 21 |
-
# 预创建 X11
|
| 22 |
RUN mkdir -p /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix
|
| 23 |
|
| 24 |
-
# 非 root 用户
|
| 25 |
RUN useradd -m -u 1000 -s /bin/bash user
|
| 26 |
USER user
|
| 27 |
WORKDIR /home/user
|
| 28 |
|
| 29 |
-
# 下载并在构建期解包 AppImage(避免运行期 FUSE
|
| 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 |
-
#
|
| 41 |
EXPOSE 6099
|
| 42 |
|
| 43 |
-
# 启动:Xvfb
|
| 44 |
-
CMD
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
sleep 2 && \
|
| 46 |
-
|
|
|
|
|
|
| 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}
|