Ghost-Downloader-3 跑进容器:无头部署三步走

发布时间:2026/9/18 8:47:04
Ghost-Downloader-3 跑进容器:无头部署三步走 Ghost-Downloader-3 跑进容器无头部署三步走【免费下载链接】Ghost-Downloader-3The only downloader you need. 下载器的集大成者。项目地址: https://gitcode.com/GitHub_Trending/gh/Ghost-Downloader-3把 m3u8、BT、ed2k 这几路下载任务集中到一台服务器上是挺常见的诉求Ghost-Downloader-3 把这些协议都收了。但它本质是个 PySide6 图形程序裸跑在无头没有图形界面服务器上会卡在依赖和显示两处。这篇文章只走一条线把 Ghost-Downloader-3 装进镜像打包好的运行环境模板无界面运行重启之后数据不丢。最小可跑的镜像怎么搭先取代码git clone https://gitcode.com/GitHub_Trending/gh/Ghost-Downloader-3依赖清单直接取仓库的项目用 uv 管理依赖并带锁文件pyproject.toml 里写明requires-python 3.13。所以基础镜像要用 3.13 以上照搬旧文章里的 3.11 会直接卡住。pyside6、libtorrent、m3u8、wreq 这些包都在 uv.lock 里有精确版本不需要自己拼 requirements.txt。Dockerfile 分两段写第一段装 PySide6 运行库并拷入代码。FROM python:3.13-slim RUN apt-get update apt-get install -y --no-install-recommends \ libglib2.0-0 libgl1 libegl1 libxkbcommon0 \ libxcb-cursor0 libxcb-icccm4 libxcb-keysyms1 \ libxcb-shape0 libxcb-xinerama0 libxcb-xkb1 fonts-noto-cjk \ rm -rf /var/lib/apt/lists/* WORKDIR /app COPY pyproject.toml uv.lock ./ COPY app/ ./app/ COPY features/ ./features/ COPY Ghost-Downloader-3.py .第二段用锁文件装依赖再设无头启动。RUN pip install --no-cache-dir uv \ uv sync --no-dev --frozen --no-install-project ENV QT_QPA_PLATFORMoffscreen CMD [.venv/bin/python, Ghost-Downloader-3.py, --silence]--no-install-project是关键取舍只装依赖、不构建项目本体避开自动打包的坑。构建一条命令docker build -t ghost-downloader .无头服务器上 GUI 程序怎么起来QT_QPA_PLATFORMoffscreen让 Qt 不找真实显示器画面渲染到内存里进程照常活着。启动参数加--silence。入口 Ghost-Downloader-3.py 检查这个标志会跳过闪屏和首次引导向导直接拉起下载引擎。首次启动时会注册资源文件、加载 features/ 目录下的功能包B站、YouTube、m3u8 等全部从代码目录读取容器里不用额外处理。托盘图标在无头环境里不可用属正常现象不影响下载任务本身。配置和下载文件挂哪里两个路径的取值规则在 app/config/paths.py决定了你该挂哪两个目录可执行目录旁若存在GhostDownloader目录程序进入便携模式配置和日志都写进去否则落到~/.local/share/GhostDownloader。下载文件统一写系统下载目录HOME/root时即/root/Downloads。所以启动时挂两个卷docker run -d --name ghost-downloader -v $PWD/data:/app/GhostDownloader -v $PWD/downloads:/root/Downloads ghost-downloaderdata 目录里会有 UserConfig.json全部设置项保持默认即可和 GhostDownloader.log按 512KB 轮转、保留 5 份。下载内容则都在 downloads 目录重建镜像也不受影响。生产补充项非必需可跳过端口怎么给宿主机用aria2 兼容 RPC 默认 16800但 app/services/aria2_rpc.py 里只绑定 127.0.0.1宿主机上的工具默认连不进来。浏览器扩展的 WebSocket 默认 14370宿主机浏览器要配对就得到这个口。两个方案改绑定地址或干脆用 host 网络。资源限制和日志出口生产形态用 compose 收拢host 网络加双卷services: ghost-downloader: build: . restart: unless-stopped network_mode: host volumes: - ./data:/app/GhostDownloader - ./downloads:/root/Downloads内存和核数按机器加--memory 2g --cpus 1之类限制即可。日志有两条路loguru 默认输出到 stderrdocker logs ghost-downloader能看到实时流文件日志在挂出来的 data 目录里方便事后翻。三个高频现象对照处理现象根因处理启动即崩报错 Could not load the Qt platform plugin缺 PySide6 运行期共享库按第一段补齐 libglib2.0-0、libgl1 等库后重建中文界面全是方框容器内没有中文字体apt 清单加 fonts-noto-cjk重建镜像后配置和任务列表消失数据写在镜像层卷没挂上按上文挂 data 与 downloads 两个卷data 目录首次启动前就要存在到这里镜像谁拿到都能跑任务、配置、下载文件三条数据都落在宿主机上。建议下一步给镜像配一条自动构建推代码就出新镜像然后用一个 m3u8 任务完整验证一遍「下载→断网→重启→续传」链路。【免费下载链接】Ghost-Downloader-3The only downloader you need. 下载器的集大成者。项目地址: https://gitcode.com/GitHub_Trending/gh/Ghost-Downloader-3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询