你是否在纠结于k8s的庞大和复杂,是否在被混论的发布流程搞得焦头烂额。PasteSpider适合你!足够小的内存资源消耗(300MB甚至更低!),不需要专业的运维知识,图文操作,支持一键发布,支持自动路由配置,支持不同角色管理部署项目,支持私有镜像仓库,支持报表查看,支持集群部署,支持一拖多服务器等!
PasteSpider目前的版本只支持postgresql数据库,所以先要安装postgresql数据库,如何安装可以参照文章
如何在docker中安装postgresql数据库
如果你要使用redis作为缓存,可以使用命令(记得把yourpassword换成你自己的密码,记住好了!)
docker run -it --name redis -p 8004:6379 -d --restart always redis --requirepass yourpassword
打开贴代码官网 【贴代码】 开发从贴代码开始!
要先注册账号,然后登陆后在这里应该可以看到版本号,这个版本号表示Spider的更新版本,后续会推出查看版本更新内容和版本前瞻等。点击去打包,然后等2分钟后刷新下,会显示点击下线xxxx,下载后会获得一个文件 例如:
PasteSpider.xxxx.tar.gz
首先使用cd命令,转到你放这个文件夹的位置,然后执行解压缩
tar -zxvf PasteSpider.xxx.tar.gz
执行上面命令解压缩后,会生成一个文件夹packer/package/x/xxxx,第一个x一般表示你在贴代码的会员ID,第二个xxxx就是这个Spider的版本号,然后会看到一个文件PasteSpider.tar
tar -zxvf spider.1015.tar.gz
要先解压,然后一层一层找到.tar
然后
docker load -i spider.tar
首先从官网拉取最新版本下载下来,然后加载到docker images中
docker load -i PasteSpider.tar
镜像被加载到你的docker里面后,使用
docker images
罗列出镜像列表,找下名称为imgPasteSpider的镜像,看下版本号和你上面执行的xxxx的那个
你也可以直接解药这个images包,特别查看appsettings.json这个文件,这个文件是配置信息。大致信息如下:
{
"App": {
"CorsOrigins": "http://localhost:5000"
},
"ConnectionStrings": {
"MainConnectionString": "User id=postgres;Password=123456;Host=192.168.1.5;Port=5432;Database=keeperdb;Pooling=true;MaxPoolSize=10;MinPoolSize=0;Connection Lifetime=0;"
},
"KeeperConfig": {
"GroupName": "default", //集群模式中的群组划分
"UseRedis": true, //是否采用redis缓存机制,还是使用内存缓存机制
"SqlDataType": "pgsql", //mysql sqlite pgsql(推荐)
"RecoveryHour": 3, //每日凌晨几点进行资源回收
"RecoveryDay": 90, //资源回收跨度(天)
"SingleModel": true, //是否是单例模式,否则为集群模式
"SlaveToken": "", //集群密钥
"WorkDir": "/PasteSpider/", //绑定的执行目录,如果不需要构建可以不需要设定
"WaitNginxLoadTime": 10, //等待nginx生效时间
"WaitRunTime": 20, //等待启动最大时间
"TestImage": "pastetestimage", //创建仓库的时候创建的测试镜像的镜像名称
"UserToken": "123-456-789-012" //自动生成,不需要修改,在个人中心中查看 https://PasteSpider.pastecode.cn/ 是否一致
},
"RedisConfig": {
"MainConnection": "192.168.1.5:6379,password=123456,defaultDatabase=10",
"Prefix": "keeper:",
"ClientName": "PasteSpider"
},
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Information",
"System": "Information"
}
},
"WriteTo": [
{ "Name": "Console" },
{
"Name": "File",
"Args": {
"path": "logs/log.txt",
"rollingInterval": "Day", // "创建文件的类别,可以是分钟,小时,天,月,年": null,
"retainedFileCountLimit": 60, // "--设置日志文件个数最大值,默认31,意思就是只保留最近的31个日志文件", "等于null时永远保留文件": null,
"fileSizeLimitBytes": 3145728, //设置单个文件大小为3M 默认1G
"rollOnFileSizeLimit": true //超过文件大小后创建新的
}
}
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ]
}
}
如果你要修改数据库的链接字符串,可以在docker run的后面加入如下配置 -e ConnectionStrings:MainConnectionString="PostgresqlConnectionString"
如果你要修改日志文件的文件夹路径,则是这样的 -e "Serilog:WriteTo:1:Args:path=/logs/abc.txt"
这里面 -e 后面的双引号放哪里,主要要看你的值里面有没有=,有的话你就把他弄值后面,如果没有,则可以全部包裹。
先要在docker中安装postgresql数据库,如果你没有这个数据库的话,安装好了后测试下链接字符串有没有问题,然后启动的时候配置如链接串,建议采用局域网的IP,如果允许的话。
参考启动命令
docker run -d --name myPasteSpider -v "/PasteSpider/:/PasteSpider/" -e ConnectionStrings:MainConnectionString="你的数据库连接字符串" -e RedisConfig:MainConnection="你的redis数据量连接字符串" - p 12345:80 imgPasteSpider:1000
上方要注意的是 -v /PasteSpider/:/PasteSpider/是把当前服务器的/PasteSpider/文件夹映射给这个容器内的/PasteSpider/,这样PasteSpider好使用文件更新,打包等功能!
启动后,使用docker ps查看下运行情况,看看myPasteSpider是否在运行。
PasteSpider采用netcore的EF编写,并不需要执行sql语句创建数据库啥的,系统第一次运行的时候会自行判断设定的数据库是否存在,是否需要升级等,这便于后续的自动升级。你只要确保这个数据库连接字符串中的数据库是否和你其他的数据库重复了。
注意
启动命令要保存好,下次升级PasteSpider的时候就简单了,直接修改引用的镜像版本号就行了,也就是最后面的imgPasteSpider:xxxx
打开浏览器输入地址,这个地址是多少就要看你的centos7服务器的IP和你上面启用PasteSpider的-p的配置了。
PasteSpider的初始账号是:[email protected] 密码是:123456,为了你的服务器安全,建议登陆后更改密码!
在docker中
docker logs myPasteSpider
可以查看执行日志,或者查看日志文件夹!
由于PasteSpider要上传文件,所以一般要修改上传文件的大小限制。
nginx中配置spier的路由规则的地方添加如下代码
location /api/ {
proxy_pass http://localhost:13002/api/;
proxy_set_header Host "$server_addr:$server_port";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header referer "$server_addr:$server_port";
proxy_http_version 1.1;
client_max_body_size 2M;
client_body_buffer_size 2M;
proxy_set_header Connection "Keep-Alive";
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
}
比如我的配置修改成2MB的限定,默认好像是1MB,至于要调整多少要看你的项目的最大文件的大小,如果超过大小的,你使用SFTP自己上传也是可以的,这个看个人需求。
如果官网的版本更新了如何升级?
停止和删除现有的容器
docker stop myPasteSpider && docker rm myPasteSpider
然后重新按照本文的从官网打包最新版本并下载。解压缩,docker load镜像,然后把之前的启动命令找出来,修改后面调用的版本号就行了。
然后试着访问下,默认管理端的页面地址为/page/index.html
打开后看到如下:
使用默认的账号密码登陆即可!
默认账号:[email protected]
默认密码:123456
登陆后,记得点击右上方修改密码!
关于启动,可以参考我的命令
我的启用命令是这个
docker run -it -v "/Users/apeart/spider/:/spider/" -e ConnectionStrings:MainConnectionString="User id=postgres;Password=12345678;Host=192.168.0.29;Port=8002;Database=spiderdb;Pooling=true;MaxPoolSize=10;MinPoolSize=0;Connection Lifetime=0;" -e RedisConfig:Mainconnection="192.168.0.29:8004,password=12345678,defaultdatabase=9" --name myspider -d imgspider:1021
-e 后面的字符串是认大小写的,注意!
看命令,注意先要在宿主中创建文件夹/spider/ 可以使用命令
mkdir -p /spider/