Files
biliTickerBuy/docs/docker-deployment.md
2026-06-19 04:08:56 +08:00

6.1 KiB
Raw Permalink Blame History

Docker 部署指南

本文说明如何使用 GitHub Container Registry 中已经构建好的镜像部署 biliTickerBuy

当前镜像仓库地址:

  • GitHub Packages: https://github.com/mikumifa/biliTickerBuy/pkgs/container/bilitickerbuy
  • GHCR 镜像名:ghcr.io/mikumifa/bilitickerbuy

前置要求

  • 已安装 Docker Engine 或 Docker Desktop
  • 如果使用 docker compose,需要安装 Docker Compose

方式一:使用 docker run

最小启动

直接运行:

docker run -d \
  --name bilitickerbuy \
  -p 7860:7860 \
  -e BTB_SERVER_NAME=0.0.0.0 \
  -e GRADIO_SERVER_PORT=7860 \
  ghcr.io/mikumifa/bilitickerbuy:latest

启动后访问:

http://服务器IP:7860

带持久化挂载启动

长期使用建议挂载配置、Cookies、日志和运行目录

docker run -d \
  --name bilitickerbuy \
  -p 7860:7860 \
  -e BTB_SERVER_NAME=0.0.0.0 \
  -e GRADIO_SERVER_PORT=7860 \
  -e GRADIO_NUM_PORTS=100 \
  -e BTB_CONFIG_PATH=/app/data/config.json \
  -e BTB_COOKIES_PATH=/app/data/cookies.json \
  -e BTB_LOG_DIR=/app/data/btb_logs \
  -v $(pwd)/data:/app/data \
  ghcr.io/mikumifa/bilitickerbuy:latest

Windows PowerShell 示例:

docker run -d `
  --name bilitickerbuy `
  -p 7860:7860 `
  -e BTB_SERVER_NAME=0.0.0.0 `
  -e GRADIO_SERVER_PORT=7860 `
  -e GRADIO_NUM_PORTS=100 `
  -e BTB_CONFIG_PATH=/app/data/config.json `
  -e BTB_COOKIES_PATH=/app/data/cookies.json `
  -e BTB_LOG_DIR=/app/data/btb_logs `
  -v ${PWD}/data:/app/data `
  ghcr.io/mikumifa/bilitickerbuy:latest

查看日志:

docker logs -f bilitickerbuy

停止并删除容器:

docker rm -f bilitickerbuy

方式二:使用 docker compose

如果你希望长期运行并持久化配置,建议使用 docker compose

示例 compose.yaml

services:
  bilitickerbuy:
    image: ghcr.io/mikumifa/bilitickerbuy:latest
    container_name: bilitickerbuy
    restart: unless-stopped
    ports:
      - "7860:7860"
    environment:
      BTB_SERVER_NAME: 0.0.0.0
      GRADIO_SERVER_PORT: 7860
      GRADIO_NUM_PORTS: 100
      BTB_CONFIG_PATH: /app/data/config.json
      BTB_COOKIES_PATH: /app/data/cookies.json
      BTB_LOG_DIR: /app/data/btb_logs
    volumes:
      - ./data:/app/data

启动:

docker compose up -d

查看日志:

docker compose logs -f

停止:

docker compose down

常用环境变量

可按需在 docker rundocker compose 中设置以下变量:

环境变量 说明 默认值
BTB_SERVER_NAME Web 服务监听地址 0.0.0.0
GRADIO_SERVER_PORT Web 服务端口 7860
GRADIO_NUM_PORTS Gradio 可用端口池大小 100
BTB_CONFIG_PATH 配置文件路径 默认 /app/config.jsonDocker 推荐 /app/data/config.json
BTB_COOKIES_PATH Cookies 文件路径 默认 /app/cookies.jsonDocker 推荐 /app/data/cookies.json
BTB_LOG_DIR 日志目录 默认 /app/btb_logsDocker 推荐 /app/data/btb_logs
BTB_SHARE 是否启用 Gradio 公网分享 false
BTB_PUSHPLUSTOKEN PushPlus 通知 token
BTB_BARKTOKEN Bark 通知 token
BTB_NTFY_URL ntfy 推送地址

更新镜像

如果要更新到最新镜像:

docker pull ghcr.io/mikumifa/bilitickerbuy:latest
docker rm -f bilitickerbuy
docker run -d \
  --name bilitickerbuy \
  -p 7860:7860 \
  -e BTB_SERVER_NAME=0.0.0.0 \
  -e GRADIO_SERVER_PORT=7860 \
  -e GRADIO_NUM_PORTS=100 \
  -e BTB_CONFIG_PATH=/app/data/config.json \
  -e BTB_COOKIES_PATH=/app/data/cookies.json \
  -e BTB_LOG_DIR=/app/data/btb_logs \
  -v $(pwd)/data:/app/data \
  ghcr.io/mikumifa/bilitickerbuy:latest

如果你使用固定版本,把 latest 替换成目标版本标签即可,例如:

ghcr.io/mikumifa/bilitickerbuy:v2.15.8

如果使用的是 docker compose,修改镜像标签后执行:

docker compose pull
docker compose up -d

常见问题

无法访问页面

优先检查:

  • 容器是否正常运行:docker ps
  • 日志中是否有报错:docker logs -f bilitickerbuy
  • 宿主机防火墙是否放行了 7860
  • 云服务器安全组是否放行了 7860

配置和登录状态丢失

如果没有挂载 config.jsoncookies.jsonbtb_logsbtb_runs,删除容器后这些内容会一起丢失。长期部署时建议使用 docker compose,或者至少在 docker run 中加上数据卷挂载。

报错 IsADirectoryError: /app/config.json

这通常说明你把一个目录挂载到了本应是文件的配置路径上。

修复方式:

  1. 删除错误创建的目录
  2. 重新创建 config.jsoncookies.json 空文件
  3. 改用整目录挂载 ./data:/app/data
  4. BTB_CONFIG_PATH 设置为 /app/data/config.json
  5. BTB_COOKIES_PATH 设置为 /app/data/cookies.json

报错 gradio.exceptions.InvalidPathError

这通常说明你把持久化文件放在了 /data 这种不在 Gradio 默认允许范围内的目录。

最直接的修复是把数据目录挂到 /app/data,因为 /app 就是应用当前工作目录:

-e BTB_CONFIG_PATH=/app/data/config.json \
-e BTB_COOKIES_PATH=/app/data/cookies.json \
-e BTB_LOG_DIR=/app/data/btb_logs \
-v $(pwd)/data:/app/data \

想使用其他标签

可在 GitHub Packages 页面查看当前可用标签:

https://github.com/mikumifa/biliTickerBuy/pkgs/container/bilitickerbuy