使用jenkins
手动拉取服务器代码到本地
确保服务器安装了git ?
1.新建item
2.创建一个任务2
确定
3.添加git账号密码
如果报错
过了会莫名好了,,再观察
有可能jenkins没装git,或者其他帖子说git版本过低
4.选择test任务
点击构建
等待一个段时间可以查看构建是否成功
进入工作区就可以看到从github上拉取下来的源码了
获得 access token
1
2.
3.
4.填写名称
5.选择权限
勾选repo和repo_hook
点击生成token
定时拉取
每隔一段时间会去查看git上是否代码变化
安装docker插件
下载
Manage jenkins-Manage plugins-可选插件-搜索 docker build step plugin
配置
vim /lib/systemd/system/docker.service
在ExecStart=xxx 后面添加
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
重启
输入
Manage jenkins-configure system- 多出一个Docker Builder
测试成功
构建docker
推送docker
安装ssh插件
可能需要飞机,不然会下载失败?
配置私钥
生成RSA密钥对
ssh-keygen -t rsa -C "你的邮箱@xxx.com"
生成密钥对 查看公钥内容
cat ~/.ssh/id_rsa.pub
在码云中添加公钥生成秘钥
########### gitee##########
配置钩子
安装gitee插件
全局配置
gitee api令牌
https://gitee.com/profile/personal_access_tokens 生成私人令牌
选中gitee触发器,划横线的部分要映射到外网,然后填写外网地址到gitee webhook里的网址
临时的测试外网映射可用https://natapp.cn/ 免费版不支持https
生成 gitee webhook密码,这个密码将来要填写到gitee webhook里的密码
项目-管理-webhook
点击测试
成功配置钩子
##########gitlab############
远程不使用docker 备份+运行
在远程机器上写一个bat处理,再用任务计划执行这个批处理,触发时机使用上传代码带gitlab-》触发钩子->jenkens执行-》本地编译发布-》 触发远程,远程先备份老代码=》杀死当前运行的程序=》拉取jenkins服务器上编译号的文件到本地=》运行程序
xcopy F:\0core F:\备份\mesapicore\%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%\ /s /e /h /y taskkill /f /im MesApiCore.exe xcopy \\192.111.111.11\test f:\0core /s /e /h /y start F:\0core\MesApiCore.exe
本地dotnet +docker脚本
echo '获得正在运行的容器id' cid=$(docker ps -a | grep "testnet:v1" | awk '{print $1}') echo '删除正在运行的容器' if [ "$cid" != "" ]; then docker rm -f $cid sleep 3s echo '删除成功' fi echo '切换到镜像目录' cd $WORKSPACE echo '创建镜像' docker build -t testnet:v1 . echo '创建并运行容器' docker run -d -p 5000:8888 testnet:v1