Asp.net Core Jenkins Docker 实现一键化部署
写在前面
在前段时间尝试过用Jenkins来进行asp.net core 程序在IIS上面的自动部署。大概的流程是Jenkins从git上获取代码
最开始Jenkins是放在Ubuntu的Docker中,但是由于Powershell执行的原因,就把Jenkins搬到了windows上。因为我们网站的部署需要停掉IIS站点,所以需要Powershell来远程操作服务器(上传文件,停止站点,启动站点),也很顺利的利用WinRM+Powershell脚本实现了上面的功能,但是最后在实际使用中发现,脚本停止站点偶尔会有是假状态,进行Copy文件还总是会因为占用而失败,所以还是只能手动去停止站点,这样就没有达到一键化的目的,所以就有了用Docker来镜像。
Docker Image
.net core对Docker是大力支持了,在Core之前,我就特别羡慕我在Docker中使用一些工具的体验--一行指令就可以工具自动安全完整了,不用费力进行环境配置,而且对系统的入侵特别少。所以Core出来之后,我就一直会尝试在Docker中运行Core程序 但是一直没敢上正式环境,正好现在遇到自动化部署的问题,就打算先从测试环境开始,把Docker环境一步步的能应用到正式环境上。大概的流程是这样的:
Jenkins安装
Docker安装Jenkins可以直接到store.docker.com上搜索Jenkins的镜像然后run容器就行了唯一要注意的是要让容器中的Jenkins共用宿主机的Docker环境,命令如下
docker run --memory 1.5G --name ContainerName -p 18181:8080 -p 50000:50000 -u root -d --env JAVA_OPTS="-Xms256m -Xmx512m -XX:MaxNewSize=256m" -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /home/buxiaoxia/software/jenkins:/var/jenkins_home -v /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 jenkins/jenkins:lts
后面的-v是用来指定宿主机的文件/文件夹挂载到宿主机的指定路径上面,这里主要是用来挂载宿主机的Docker环境。当容器启动完成之后,我们可以用命令
docker exec -it containerid /bin/bash
进入容器中,执行docker ps的命令试试是否能执行成功。
Jenkins Job
当容器运行好之后,进行一些初始化的工作之后,我们就可以开始建立的部署Job了
源代码管理中配置我们Git的地址
然后就是构建命令直接用执行Shell
这里就是在构建我们的Image了
然后接下来就是推送当前构建的Image到远程仓库,再在构建后去执行远程连接到需要发布的服务器根据版本号获取到需要部署的镜像进行run就行,因为我当前都在测试环境 所以就直接在本地执行镜像的run了。
这样就基本实现了一键化部署了,当然还是有很多需要优化的地方,接下来我在使用的过程中如果遇到用着不顺的或者是你们有不顺的地方我们在来解决下。
写在最后
DockerFile
最开始构建asp.net core 2.1版本的镜像的时候,运行总是会找不到dotnet sdk,最后就只有在DockerFile中添加了一层 文件内容如下
这种方式有个问题就是会有一些无用的images 分享的指令来进行清除
原文地址: https://www.cnblogs.com/rstar/p/9983438.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
Asp.net Core Jenkins Docker 实现一键化部署相关推荐
- ASP.NET Core amp; Docker 实战经验分享
一.前言 最近一直在研究和实践ASP.NET Core.Docker.持续集成.在ASP.NET Core 和 Dcoker结合下遇到了一些坑,在此记录和分享,希望对大家有一些帮助. 二.中间镜像 我 ...
- 深入浅出 ASP.NET Core 与 Docker 入门课程说明
点击蓝字"角落的白板报"关注我哟 加个"星标★",好文必达! 深入浅出 ASP.NET Core 与 Docker 入门课程说明 <深入浅出 ASP.NE ...
- ASP.NET Core开发-Docker部署运行
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
- netcore docker_深入浅出 ASP.NET Core 与 Docker 入门课程目标说明
课程目标说明https://www.zhihu.com/video/1241137370310508544 <深入浅出 http://ASP.NET Core 与 Docker >是一门新 ...
- ASP.NET Core开发Docker部署
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
- 5分钟快速掌握Jenkins,项目一键自动部署
5分钟快速掌握Jenkins,项目一键自动部署 目录 前言 Jenkins是什么? Jenkins环境安装搭建 Jenkins基本使用介绍 Jenkins快速构建项目,项目自动化部署 学习总结 前言 ...
- ASP.NET Core Web 应用程序开发期间部署到IIS自定义主机域名并附加到进程调试
想必大家之前在进行ASP.NET Web 应用程序开发期间都有用到过将我们的网站部署到IIS自定义主机域名并附加到进程进行调试. 那我们的ASP.NET Core Web 应用程序又是如何部署到我们的 ...
- ubuntu一键化部署方案
ubuntu一键化部署方案 近来对于开发的项目进行部署,每次都是先下载相关的软件,拷贝的指定的位置然后解压,配置path,将工程拷贝到指定的位置修改相关度额配置文件,十分麻烦和费时,能不能把事情尽量简 ...
- Centos7 Docker Jenkins ASP.NET Core 2.0 自动化发布和部署
写在前面 Docker一直很火热,一直想把原本的Jenkins自动部署工具搬到Docker上面,无奈今年一直忙于各种事情,迟迟未实施这个事情,正好迎来了dotnet core 2.0 的正式发布,升级 ...
最新文章
- 20160127:开始学VBA:(三)、判断语句
- SAP SD基础知识之SD常用BAPI
- Oracle 11g R2 常见问题处理
- 统计输入的汉字,数字,英文,other数量
- Android自动化测试(UiAutomator)简要介绍
- w10恢复出厂设置_路由器如何恢复出厂设置
- 【Java工具】Java反编译工具:JAD的下载与简单使用
- FTPSFTP的基本命令
- emd经验模态分解 matlab,经验模态分解(EMD)在地球物理资料中的应用(附MATLAB程序)...
- 天气预报接口api(中国天气网)
- 我只是一只大本钟[铛铛铛]
- php实现服务器访问统计,服务器端统计网站总访问人数
- html网页底部代码实例,HTML网页头部代码实例详解H 这个首页的html5网站
- Node.js git命令
- 【专栏】国内外物联网平台初探(篇三:QQ物联·智能硬件开放平台)
- Module not found: Error: Can‘t resolve ‘vue‘ in ‘C:\Users\86135\Desktop\webpack-vue\Vue\src\js‘
- 威力导演19安装说明以新功能
- MOD04_3K数据处理
- 需要使用新应用以打开此ms-gamingoverlay链接
- 希赛教育计算机网络基础,2020年9月网络教育统考《计算机应用基础》计算机网络模拟题试卷1...
热门文章
- html5结构与表现分离原则,网页简单布局之结构与表现原则分享
- java 多线程 优先级_java多线程之线程的优先级
- JavaScript 使用random()生成随机数
- python字符串格式化方法 format函数的使用
- 《Unity着色器和屏幕特效开发秘笈(原书第2版)》一2.9 打包和混合纹理
- Git命令集十三——快照操作
- 网站前端_EasyUI.基础入门.0009.使用EasyUI Layout组件的最佳姿势?
- SQL--合并多条记录为一条记录
- Avalonia跨平台入门第八篇之控件的拖放
- 198道K8sDocker面试真题大汇总,全网最全八股!