Ghost-Downloader-3 Docker 部署:三步跑通全协议下载器的容器化指南

Ghost-Downloader-3 Docker 部署:三步跑通全协议下载器的容器化指南 Ghost-Downloader-3 Docker 部署三步跑通全协议下载器的容器化指南【免费下载链接】Ghost-Downloader-3The only downloader you need. 下载器的集大成者。项目地址: https://gitcode.com/GitHub_Trending/gh/Ghost-Downloader-3Ghost-Downloader-3 是一款覆盖 HTTP、BT、M3U8、MPEG-DASH、eD2k 等协议的开源多平台下载器。本文将其容器化部署拆解为镜像构建、无头运行、数据持久化三步让你在同一台宿主机上复用同一份运行环境无需逐平台安装依赖。 部署前检查清单宿主机环境要求已安装 Docker Engine 与 docker compose 插件docker compose version可正常输出。CPU 需支持 AVX 指令集。项目基于 Qt 6.6 的 PySide6 构建pyproject.toml 中声明了pyside6~6.10.3不支持 AVX 的旧处理器常见于低配 VPS会启动失败。Python 无需在宿主机安装。项目要求 Python 3.13见 pyproject.toml 的requires-python由镜像内置宿主机只需 Docker。目录规划建议在工作目录下规划两个持久化目录ghost-dl/ ├── Dockerfile ├── docker-compose.yml ├── data/GhostDownloader/ # 应用数据日志、UserConfig.json 等 └── downloads/ # 下载产物端口与资源预估容器默认不监听对外端口即可运行。若启用 aria2 兼容 RPC默认 16800绑定 127.0.0.1实现见 app/services/aria2_rpc.py或浏览器扩展服务默认 14370才需要映射对应端口且仅在内网或本机访问时暴露。内存PySide6 界面 下载引擎空闲约 300~500 MB下载任务多时预留 1 GB 以上。磁盘镜像约 1 GB 量级下载目录按实际文件量规划。构建镜像Dockerfile 的四个核心决策完整文件不必手抄抓住以下四条核心行即可FROM python:3.13-slim RUN apt-get update apt-get install -y --no-install-recommends \ libgl1 libegl1 libxkbcommon0 libxcb-cursor0 libfontconfig1 \ rm -rf /var/lib/apt/lists/* COPY pyproject.toml uv.lock ./ RUN pip install uv uv sync --frozen COPY . . ENV QT_QPA_PLATFORMoffscreen CMD [python, Ghost-Downloader-3.py, --silence]基础镜像选python:3.13-slim与项目requires-python 3.13严格对齐slim 变体已足够小且含编译 C 扩展所需的 glibc。系统依赖PySide6 依赖一组 Qt 共享库libgl、libxkbcommon 等slim 镜像默认不含必须 apt 安装否则进程会在加载 QtGui 时直接报错退出。依赖安装项目使用 uv 管理依赖且锁定了 uv.lockuv sync --frozen按锁文件复现比逐包 pip install 更快、更稳定。无头运行QT_QPA_PLATFORMoffscreen让 Qt 在无显示器的容器内渲染到虚拟表面入口参数--silence见 Ghost-Downloader-3.py跳过交互窗口直接启动引擎服务。运行与验证从启动命令到可用性确认三条命令构成完整的验证流程docker compose up -d # 1. 后台启动 docker compose logs -f # 2. 跟踪日志出现 launched 即引擎已拉起 docker compose ps # 3. 确认状态为 running 且未 restart 循环日志中出现Ghost Downloader v... launched表示主流程初始化完成若启用了 aria2 RPC日志会进一步打印 RPC 端口启动信息。需要浏览器扩展配对时参考下图指引完成安装扩展通过对应端口与容器通信数据持久化两个必须映射的卷Ghost-Downloader-3 的数据目录逻辑在 app/config/paths.py若可执行文件旁存在GhostDownloader/目录日志、UserConfig.json语言、端口、下载目录等全部用户配置都会写入该目录下载产物默认写入用户Downloads目录。容器内二者都不在镜像层重启即丢因此 compose 中必须映射两个卷volumes: - ./data/GhostDownloader:/app/GhostDownloader - ./downloads:/root/Downloads这样宿主机上直接可见下载文件与配置换镜像版本升级时数据原样保留。生产加固资源限制、重启策略与健康检查三项配置合并写入 compose 即可services: ghost-downloader: restart: unless-stopped environment: - QT_QPA_PLATFORMoffscreen deploy: resources: limits: cpus: 2 memory: 1g资源限制下载类进程在突发大文件任务时内存波动明显1g上限可防止它挤占同机其他服务CPU 限制到 2 核已够单实例吞吐。重启策略unless-stopped保证宿主机重启或进程异常后自动拉起管理员显式docker stop时不再重启。健康检查应用为 GUI 进程且服务仅监听容器内回环地址无法用 HTTP 探活以进程存活为准——test: [CMD, pgrep, -f, Ghost-Downloader-3.py]配interval: 30s、retries: 3。故障速查现象可能原因处理方式容器启动后立即退出日志含libEGL/libxcb相关缺失Qt 共享库未装全在 Dockerfile 补齐libgl1 libegl1 libxkbcommon0 libxcb-cursor0后重新构建启动报illegal instruction宿主机 CPU 不支持 AVX更换支持 AVX 的宿主机无法在镜像层规避升级镜像后配置消失数据卷未映射按上文映射./data/GhostDownloader重启容器下载文件找不到只映射了数据目录漏了下载目录补充./downloads:/root/Downloads卷映射浏览器扩展连不上扩展端口未映射或端口冲突映射 14370 端口或在 UserConfig.json 中改用未占用端口大文件任务后容器被 OOM kill内存限制过低将memory上限调至 2g 或移除该限制观察峰值容器化让 Ghost-Downloader-3 的依赖、配置与运行环境固化为单一镜像配合卷映射与重启策略即可作为长期下载服务运行在任意支持 AVX 的主机上。【免费下载链接】Ghost-Downloader-3The only downloader you need. 下载器的集大成者。项目地址: https://gitcode.com/GitHub_Trending/gh/Ghost-Downloader-3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考