使用docker部署自动领金豆bot脚本
使用的版本:
服务器:centos 8
docker: 20.10.6
docker-compose: 1.27.4
1、服务器安装docker,docker-compose
推荐使用centos服务器安装docker、docker-compose
Docker安装
- 国内一键安装
curl -sSL https://get.daocloud.io/docker | sh
- 国外一键安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
docker-compose安装
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
要安装其他版本的 Compose,请替换 1.24.1。
最新发行的版本地址:https://github.com/docker/compose/releases。
将可执行权限应用于二进制文件:
$ sudo chmod +x /usr/local/bin/docker-compose
创建软链:
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
通过docker-compose version
查看docker-compose
版本,确认是否安装成功。
2、安装jd_scripts
创建一个目录jd_scripts
用于存放备份配置等数据,迁移重装的时候只需要备份整个jd_scripts目录即可
需要新建的目录文件结构参考如下:
|
|
jd_scripts/logs
建一个空文件夹就行jd_scripts/docker-compose.yml
参考内容如下(自己动手能力不行搞不定请使用默认配置):
根据文档一步一步下去就ok了,下面主要记录下可能用到的命令
目录文件配置好之后在 jd_scripts
目录执行。
docker-compose up -d
启动(修改docker-compose.yml后需要使用此命令使更改生效);
docker-compose logs
打印日志;
docker-compose logs -f
打印日志,-f表示跟随日志;
docker logs -f jd_scripts
和上面两条相比可以显示汉字;
docker-compose pull
更新镜像;
docker-compose stop
停止容器;
docker-compose restart
重启容器;
docker-compose down
停止并删除容器;
3、开代理机器,激活tg-bot
这里是个大坑,拿个小本本记下来,其实就是docker内代理宿主机代理的问题
由于众所周知的原因,国内的机器不能访问tg,而又想使用tg-bot来控制,无奈,国外机子太贵(穷),最低也要5美刀!遂买国内机子开代理使用
1、买国内机器,推荐大厂的
这里应该放各大厂的aff的,留个坑
2、安装clash
一直在使用clash,直接网上搜索clash下载,找到对应版本下载,博主用的是centos,下载linux-amd64的
1、下载clash,最新版本可去官网找
|
|
2、解压
|
|
3、移动至usr/bin/clash并重命名为clash
|
|
4、赋予clash运行权限
|
|
5、检查是否安装成功
|
|
3、创建配置文件、安装控制面板
1.创建配置文件目录
|
|
2.进入目录
|
|
3.创建配置文件
|
|
4.手动编辑很麻烦,可用winscp上传
配置参数自行查找
5.下载前端代码
|
|
6.解压
|
|
7.修改目录名,这里的目录名是上面配置文件里的 external-ui: dashboard
|
|
4、设置clash开机启动
1.创建service文件
|
|
2.输入下面代码
|
|
3.重新加载 systemd 模块
|
|
4.启动Clash
|
|
5.设置Clash开机自启动
|
|
6.判断是否成功开启代理
|
|
返回200即表示代理已经成功
5、自动更新订阅配置文件
通过shell脚本自动更新Clash在线配置
通过systemctl来管理Clash的进程,对应clash.service
文件,通过两个脚本start-clash.sh
和stop-clash.sh
来管理Clash的启停:
把上面的配置文件修改下:
|
|
|
|
|
|
|
|
|
|
|
|
配置添加完成后,如果你的clash 正在运行中,需要重新加载配置文件并重启
|
|
这样每次启动clash时就会自动更新配置文件了,接下来通过crontab 自动重启 clash.service实现自动更新节点
|
|
新增一条命令
|
|
|
|
大功告成,可通过tail -500f /var/log/cron
查看定时任务是否执行
sudo systemctl status clash.service
查看是否重启成功
4、docker内开代理
由于主要用来使用tg-bot,故只检测tgapi即可
1、判断宿主机可连接tgapi
|
|
如果返回成功,即表示成功
2、进入容器
|
|
执行步骤1命令,如若响应时间长或失败,则需要配置代理
3、配置容器代理走宿主机
docker版本大于 17.07以上可用下面的方法
|
|
填入下面json
|
|
保存文件创建或者启动新容器时才生效
这里有个大坑,搞了一天,就是
代理的ip一定要写对!
代理的ip一定要写对!
代理的ip一定要写对!
下午调试的时候https的写成了127的了,机器启动起来,pull代码的时候,直接找不到文件,当时还骂这破代理,没法,就把报错ip不走代理了,没想到下面不报错了,直接无限重启,搞得头都大了,还在想是不是内存爆了呢!晚上,打开配置文件,定睛一看,WC!“httpsProxy"端口写的127…赶紧改了,重新跑遍,妥了,bot成功了!
4、删除容器,重新启用
接下来在jd_scripts 目录内
|
|
启动成功后,tgbot即可收到成功的消息,尽情享用吧!
Clash相关的管理命令
|
|
docker相关命令
docker exec -it jd_scripts /bin/sh -c 'git -C /scripts pull && node /scripts/jd_bean_change.js'
手动运行一脚本
docker exec -it jd_scripts /bin/sh -c 'env'
查看设置的环境变量
docker exec -it jd_scripts /bin/sh -c 'crontab -l'
查看已生效的crontab_list定时器任务
docker exec -it jd_scripts sh -c "docker_entrypoint.sh"
手动更新jd_scripts仓库最新脚本
docker exec -it jd_scripts /bin/sh
仅进入容器命令
rm -rf logs/*.log
删除logs文件夹里面所有的日志文件
- [1] jd_docker
- [2] clash安装参考
- [3] docker内代理参考
- [4] clash自动更新订阅配置