博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.net core Jenkins持续集成Linux、Docker、K8S
阅读量:5877 次
发布时间:2019-06-19

本文共 2141 字,大约阅读时间需要 7 分钟。

jenkins插件

系统管理 -> 管理插件,安装如下插件。

#如果搜索不到去掉Plugin在搜索GitLab PluginGitlab Hook Plugin#使用Gitlab账号做用户权限管理,可选(也可集成LDAP)Gitlab Authentication pluginDocker plugindocker-build-stepSSH plugin

GitLab Plugin配置

在GitLab中配置,创建个人访问令牌后获取到令牌备用

355798-20190330180429700-871948060.png

系统管理 -> 系统设置 中 左上角 'Jenkins > 配置' 选择GitLab

355798-20190330180509904-1376502215.png

  • Connection Name随便填;
  • Git Host URL填GitLab的域名地址,例如http://gitlab.yourdomain.com/;
  • Credentials配置;

Credentials配置

  • 类型选择GitLab API token
  • 将令牌填充到API token中
  • 描述 名称
    355798-20190330180454913-1550532257.png

创建构建任务

  • 新建任务 -> 输入名称 选择构建一个自由风格的软件项目;完成后进入配置。

  • 源码管理 -> Git;

    Repository URL:中填入gitlab项目对应的ssh路径(eg:git@git.cn:group/sample.app.git);

355798-20190330180624488-530790998.png

Credentials:设置添加SSH私钥;

355798-20190330180613937-933932465.png

同时在gitlab(http://xxx/profile/keys)添加ssh公钥

355798-20190330180559833-349078672.png

  • 构建触发器 -> 勾选Build when a change is pushed to GitLab;

将GitLab webhook URL: http://xxx/group/sample.app、Secret token添加到gitlab(http://xxx/group/sample.app/settings/integrations)

355798-20190330180846953-1547607043.png

355798-20190330180902895-2008970642.png

  • 构建环境 -> 勾选Delete workspace before build starts、Add timestamps to the Console Output;

  • 构建 -> 增加构建步骤 -> 执行 shell;

    添加sh脚本,jenkins服务需要安装dotnet。

    如果需要.netcore多版本环境参考。

#!/bin/shpwdlsecho $PATHwhoamiwhich dotnetdotnet --infodotnet --versionecho '=====dotnet 方式====='dotnet restorecd ./src/sample.apprm -rf $WORKSPACE/jenkins_publishmkdir -p $WORKSPACE/jenkins_publishdotnet publish -o $WORKSPACE/jenkins_publishscp -r $WORKSPACE/jenkins_publish/* root@xx.xx.xx.xx:/home/Webecho '=====Docker swarm方式====='GITHASH=`git rev-parse --short HEAD`echo $GITHASHcd $WORKSPACEdocker login xx.xx.xx.xx -u admin -p HarborPwddocker build -t img-name:$GITHASH . -f src/Dockerfiledocker tag img-name:$GITHASH xx.xx.xx.xx/img-name:$GITHASHdocker push xx.xx.xx.xx/img-name:$GITHASH#清理容器docker rm $(sudo docker ps -a -q)#清理imagedocker images|grep none|awk '{print $3}'|xargs docker rmicat>test.yml<
test.yaml<
  • 构建 -> 增加构建步骤 -> Build / Publish Docker Image;

    在上面直接使用shell命令,未使用此功能

355798-20190330180926456-456997388.png

  • 构建 -> 增加构建步骤 -> Execute shell script on remote host using ssh;

    部署

355798-20190330180935660-1891335427.png

#Command中shell脚本echo '=====虚拟机方式====='supervisorctl restart youserver-nameecho '=====Docker swarm 方式====='docker -vdocker stack deploy -c test.yml --with-registry-auth testecho '=====K8s 方式====='cd /usr/local/srckubectl apply -f .kubectl get pod

虚拟机方式

355798-20190330180946286-654421403.png

Docker swarm方式

355798-20190330180957429-1252076120.png

K8s 方式

355798-20190330181004912-2085486545.png

转载于:https://www.cnblogs.com/ddrsql/p/10628344.html

你可能感兴趣的文章
飞秋无法显示局域网好友
查看>>
学员会诊之03:你那惨不忍睹的三层架构
查看>>
vue-04-组件
查看>>
Golang协程与通道整理
查看>>
解决win7远程桌面连接时发生身份验证错误的方法
查看>>
C/C++ 多线程机制
查看>>
js - object.assign 以及浅、深拷贝
查看>>
python mysql Connect Pool mysql连接池 (201
查看>>
Boost在vs2010下的配置
查看>>
一起谈.NET技术,ASP.NET伪静态的实现及伪静态的意义
查看>>
20款绝佳的HTML5应用程序示例
查看>>
string::c_str()、string::c_data()及string与char *的正确转换
查看>>
11G数据的hive初测试
查看>>
如何使用Core Text计算一段文本绘制在屏幕上之后的高度
查看>>
==和equals区别
查看>>
2010技术应用计划
查看>>
XML 节点类型
查看>>
驯服 Tiger: 并发集合 超越 Map、Collection、List 和 Set
查看>>
Winform开发框架之权限管理系统改进的经验总结(3)-系统登录黑白名单的实现...
查看>>
Template Method Design Pattern in Java
查看>>