DouYinSparkFlow
Docker部署
前言
我对docker的了解也止步于知道这个东西的存在,以及知道这个东西的大致作用,但是从未动手实践过。以及由于国内网络环境,很多地方要配置不同的源,这涉及了更多的linux操作,而我对这一块内容又是非常不熟悉。过去我常借助ai工具帮我完成这些操作,烧了一些token后确实完成地很轻松。但这样下来整个过程对我而言变成了一个黑箱,个人的能力在其中没有提升。借助这个项目,我希望自己能学习到一些linux操作,并在这里做一个记录。
安装基础工具
执行
sudo apt update这个命令的作用是让 APT 重新获取“软件包目录”
区别apt upgrade,前者可以理解为让应用商店刷新,后者理解为更新软件
apt常见命令
apt update
刷新软件列表
apt install xxx
安装软件
apt upgrade
升级已安装的软件
apt remove xxx
卸载软件
apt search xxx
搜索软件
apt list --upgradable
查看哪些软件可以升级执行
sudo apt install -y ca-certificates curl gnupg
安装了`certificates`和`curl`这两个包, 这个`-y`表示默认同意,不需要加yes
这三个东西分别是
ca-certificates
HTTPS 证书验证
curl
从网络下载内容
gnupg
处理 GPG 签名和公钥
语法:
apt install 软件1 软件2 软件3
APT 可以一次安装多个软件。
添加 Docker 官方 GPG key
sudo install -m 0755 -d /etc/apt/keyrings这里的install不是表示安装,这个是一个 Linux 文件操作命令。
-m 0755表示设置目录权限为0755,-d表示创建目录,最终得到/etc/apt/keyrings,这个目录专门存放 APT 软件源使用的 GPG key。
从阿里云下载 Docker 的 GPG 公钥
使用阿里云镜像:
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg设置 GPG key 权限
sudo chmod a+r /etc/apt/keyrings/docker.gpg添加阿里云 Docker CE 软件源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null再次执行 apt update
sudo apt update先检查 Docker CE 能否找到
apt-cache policy docker-ceapt-cache policy docker-compose-plugin安装 Docker 官方组件
sudo apt install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin检查 Docker 服务
sudo systemctl status docker如果没运行
sudo systemctl enable --now docker看到
Active: active (running)检查版本
下面直接贴了
**jsc@iZbp1b35hl2djhb20chyhwZ**:**~**$ docker --version
Docker version 29.7.2, build a7dcaa6
**jsc@iZbp1b35hl2djhb20chyhwZ**:**~**$ docker compose version
Docker Compose version v5.5.0运行测试容器
sudo docker run hello-world配置DouYinSparkFlow
确认镜像已经在服务器本地
输入
docker images输出
ghcr.io/2061360308/douyinsparkflow:latest创建部署目录
执行
sudo mkdir -p /etc/donyinsparkflow/config
sudo mkdir -p /etc/donyinsparkflow/log设置 .env 配置文件
sudo vim /etc/donyinsparkflow/config/.env见链接配置生成器
需要注意:
抖音平台的 cookie 校验增强了,本地和服务器 IP,设备指纹 啥的不匹配。
解决方案就是需要在服务器上扫描登录,目前你的解决方法就是在服务器创建个代理,然后本地浏览器连上后再登录,这样获取的 cookie 就没问题了,比如说用vnc连接浏览器,取 cookie。
创建 compose.yml
输入
sudo vim /etc/donyinsparkflow/compose.yml进入部署目录
services:
douyin-spark-flow:
image: ghcr.io/2061360308/douyinsparkflow:latest
container_name: douyin-spark-flow
restart: unless-stopped
shm_size: 1gb
environment:
GITHUB_ACTIONS: "true"
PYTHONUNBUFFERED: "1"
volumes:
- /etc/donyinsparkflow/config/.env:/app/.env:ro
- /etc/donyinsparkflow/log:/app/logs检查 Compose 配置有没有语法错误
输入
docker compose config启动容器
输入
docker compose up -d这里的-d表示detached,后台运行。
常用命令总结
进入对应目录
cd /etc/donyinsparkflow启动并放到后台:
docker compose up -d查看状态
docker compose ps查看实时日志
docker compose logs -f重启:
docker compose restart停止并删除当前 Compose 创建的容器:
docker compose down停止服务但不删除容器:
docker compose stop启动已经存在但当前停止的容器:
docker compose start手动在容器里执行命令:
docker compose exec douyin-spark-flow python main.py