跳到主要内容

Docker 部署

信息

此 Docker 部署方式参考了 Akira 和 lxk

推荐使用 docker-compose 所以这里只介绍 docker-compose 使用方式

安装

sudo curl -L "https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

安装不上自行寻找反代链接进行加速

注意

群晖 Nas Docker 自带安装了 docker-compose

Ubuntu

sudo apt-get update && sudo apt-get install -y python3-pip curl vim git moreutils
pip3 install --upgrade pip
pip install docker-compose

安装完成后,通过 docker-compose version 查看 docker-compose 版本,确认是否安装成功。

images

配置

随意(可以在 home,可以在 opt)创建一个目录名为 AutoTaskScript 文件夹,后续迁移重装的时候只需要备份整个 AutoTaskScript 目录即可

AutoTaskScript 下新建几个必须的文件

mkdir logs \
&& touch my_crontab_list.sh \
&& wget -O docker-compose.yml https://raw.githubusercontent.com/sudojia/AutoTaskScript/refs/heads/script/docker/docker-compose.yml
注意

还是一样,wget 失败自行寻找反代链接进行加速,或者下载到本地再上传到服务器

目录结构参考如下:

AutoTaskScript
├── logs # 存放日志文件,记录脚本运行过程中的信息,便于问题排查和监控
│ ├── XXXX.log
│ └── XXXX.log
├── my_crontab_list.sh # 自定义定时任务列表
└── docker-compose.yml # Docker 容器编排配置文件,用于定义和运行多容器 Docker 应用程序

docker-compose.yml 说明

目前与 lxk 佬不同在于,使用的是自定义任务并且覆盖默认任务(因为我懒,真不想一个一个加)

想跑哪个脚本自行在 my_crontab_list.sh 加进去就好了

信息

2024/10/8 优化更新:目前已写了自动生成定时任务,无需自己一个一个添加要跑的脚本 [default_task.sh#13]

如果有不想跑的脚本在 DO_NOT_RUN_SCRIPTS 配置项配置即可,多个脚本用 & 分隔

例如:sudojia_starMom.js&sudojia_tilta.js

my_crontab_list.sh 参考如下 这个不用看了,创建个空文件即可

# 每隔 3 天 23:50 清理一次日志
50 23 */3 * * rm -rf /AutoTaskScript/src/logs/*.log

# 以下只是示例,自行删除添加
##############小程序##############
# 霸王茶姬
22 11 * * * node /AutoTaskScript/src/wx_mini/sudojia_bwtea.js >> /AutoTaskScript/src/logs/sudojia_bwtea.log 2>&1

##############客户端##############
# 多娇江山
14 7 * * * node /AutoTaskScript/src/client/sudojia_jiangshan.js >> /AutoTaskScript/src/logs/sudojia_jiangshan.log 2>&1

##############网页端##############
# v2ex
0 9 * * * node /AutoTaskScript/src/web/sudojia_v2ex.js >> /AutoTaskScript/src/logs/sudojia_v2ex.log 2>&1

##############公众号##############
# 水费易
3 9 * * * node /AutoTaskScript/src/public/sudojia_shuifei.js >> /AutoTaskScript/src/logs/sudojia_shuifei.log 2>&1

配置好目录及 docker-compose.yml 之后执行如下命令

docker-compose up -d

后续只要修改 docker-compose.yml 都需要使用此命令使其更改生效

到这就已经配置完毕了!

其它命令

  • docker-compose logs 打印日志
  • docker-compose pull 更新镜像
  • docker-compose stop 停止容器
  • docker-compose restart 重启容器
  • docker-compose down 停止并删除容器
  • docker exec -it [CONTAINER ID] sh 进入容器内部
  • docker exec -it [CONTAINER ID] sh /AutoTaskScript/docker/docker_entrypoint.sh 手动更新脚本仓库
  • docker exec -it [CONTAINER ID] crontab -l 查看生效的定时任务

后面只要有脚本运行,就可以在 logs 里查看脚本运行过程中的信息

images

你也可以进入容器内部手动执行脚本看下是否正常:

docker exec -it [CONTAINER ID] sh  # 进入容器内部, CONTAINER ID: 容器 id,通过 docker ps 查看

运行某个脚本:

node /AutoTaskScript/src/wx_mini/sudojia_bwtea.js | tee -a /AutoTaskScript/src/logs/sudojia_bwtea.log

images

查看生效的定时任务

宿主机内:

docker exec -it [CONTAINER ID] crontab -l

容器内:

crontab -l

image

还有不懂的 #进群交流