使用Jenkins部署asp.net core
首先盗图一张
1.在Github上创建一个测试仓库
2.创建基于Asp.net Core的MVC项目
运行解决方案,验证代码没有问题,然后将代码迁入Github
3.添加Docker支持
项目-->添加-->Docker 支持
提示框选择【Linux】,点击确定
系统会自动添加相应的Dockerfile文件和docker-compose文件
此处使用默认的Dockerfile,仅修改端口号,该端口号需要跟shell文件对应
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
修改Dockerfile文件的属性
向项目中添加setup.sh文件(之后的Jenkins会用到,此处与代码并无关系)
文件中的内容如下:
image_version=`date +%Y%m%d%H%M`;
echo $image_version;
# cd Jenkins2Docker
git pull --rebase origin master;
docker stop jenkins2docker;
docker rm jenkins2docker;
docker build -t jenkins2docker:$image_version .;
docker images;
docker run -p 10001:80 -d --name jenkins2docker jenkins2docker:$image_version;
# -v ~/docker-data/house-web/appsettings.json:/app/appsettings.json -v ~/docker-data/house-web/NLogFile/:/app/NLogFile --restart=always
docker logs jenkins2docker;
#删除build过程中产生的镜像 #docker image prune -a -f
docker rmi $(docker images -f "dangling=true" -q)
完成以上操作后,将代码迁入Github。
此处需要注意的是:
- build过程中会产生一个镜像,该问题可参考博文 Docker 删除所有无名称的镜像(悬空镜像)
- 构建镜像的名字不能有大写字母,否则会构建失败:
4.配置Jenkins
4.1新建一个“自由风格的软件项目”
4.2设置General信息
4.3配置源码信息
4.4构建触发器
(H/2表示2分钟做一次查询)
4.5设置构建环境
4.6构建选择shell
4.7保存
点击【应用】-->【保存】
页面跳转后,点击【立即构建】(此处不点击,2分钟内也会自动构建)
4.8查看构建结果
如图显示了5次构建,头三次的红色表示构建失败,4、5次的蓝色表示构建成功
5.验证结果
5.1查看镜像
镜像到Tag是在shell文件中设置的,由时间字符串拼接而成,可以看到.net core生成的镜像还是很小的,毕竟包含了一个253M的run-time。
5.2查看容器
IMAGE:此处看到容器构建依赖的镜像,确实是我们刚刚生成的镜像。
STATUS:如果status的状态不是Up,可以通过Jenkins构建的后台查看是否构建出现问题。
PORTS:10001->80,80是我们在dockerfile中expose到端口,10001是容器创建时映射到服务器到端口。
5.3查看网址
6.写在最后
不知是不是shell文件写的有问题,亦或是我该改设置dockerfile生成路径?
代码迁入时需要修改下Dockerfile的路径,即从Jenkins2Docker内改到上一级的目录。
有明白的朋友可以留个言
7.参考
https://cloud.tencent.com/developer/news/223449
https://www.cnblogs.com/sunshine-wy/p/9860599.html
https://www.cnblogs.com/TomGui/archive/2017/04/06/6673084.html
8.常见错误
8.1.Dockerfile编译报错
Failed to build: Error parsing reference: “microsoft/dotnet:2.1-runtime AS base” is not a valid repository/tag
解决方法:
该问题出现的原因是docker的版本过低,具体如下
FROM microsoft/aspnetcore-build:2.0 AS buildenv Error parsing reference
8.2报错:镜像被多个repositories引用
Error when deleting images - image is referenced in multiple repositories
docker rmi -f <IMAGE_ID>
参考:https://github.com/portainer/portainer/issues/497
8.3删除虚挂镜像
docker rmi $(docker images -f "dangling=true" -q)
参考:http://www.cnblogs.com/stulzq/p/8962388.html
使用Jenkins部署asp.net core的更多相关文章
- Docker + Jenkins 持续部署 ASP.NET Core 项目
Docker 是个好东西,特别是用它来部署 ASP.NET Core Web 项目的时候,但是仅仅的让程序运行起来远远不能满足我的需求,如果能够像 DaoCloud 提供的持续集成服务那样,检测 gi ...
- k8s+Jenkins+GitLab-自动化部署asp.net core项目
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 此文阅读目录: 1.闲聊 ...
- Azure 部署 Asp.NET Core Web App
在云计算大行其道的时代,当你在部署一个网站时,第一选择肯定是各式各样的云端服务.那么究竟使用什么样的云端服务才能够以最快捷的方式部署一个 ASP.NET Core 的网站呢?Azure 的 Web A ...
- [原]CentOS7.2最小安装环境部署Asp.NET Core笔记
转载请注明原作者(think8848)和出处(http://think8848.cnblogs.com) 写在前面的话 不知不觉在cnblogs上注册已经10多年了,看我的园龄就直接暴露了我实际年龄, ...
- ubuntu16.4下用jexus部署asp.net core rtm
上篇文章介绍了下用vs发布部署到iis环境,今天说下ubuntu 下部署asp.net core,不需要安装.net core sdk,自带运行时方式部署,利用jexus服务器转发请求到asp.net ...
- win10下iis部署asp.net core rtm
随着ASP.NET Core 1.0 rtm的发布,网上有许多相关.net core 相关文章,今刚好有时间也在win10环境上搭建下 ASP.NET Core的部署环境,把过程记录下给大家. 1. ...
- Jexus + Kestrel 部署 asp.net core
结合Jexus + Kestrel 部署 asp.net core 生产环境 ASP.NET Core 是微软的全新的框架.这一框架的目标 ︰ 跨平台 针对云应用优化 解除 System.Web 的依 ...
- CentOS 7部署ASP.NET Core应用程序
看了几篇大牛写的关于Linux部署ASP.NET Core程序的文章,今天来实战演练一下.2017年最后一个工作日,提前预祝大家伙元旦快乐.不扯淡,直接进入正题.您有任何问题请在评论区留言. 1.环境 ...
- 如何优雅的利用Windows服务来部署ASP.NET Core程序
上一篇文章中我给大家讲述了五种部署ASP.NET Core网站的方法,其中有一种方式是通过Windows服务来进行部署,这样既可以做到开启自启动,又不会因为iis的反向代理而损失部分性能.但是美中不足 ...
随机推荐
- 开发工具之Vscode编辑器
Visual Studio Code(以下简称vscode)是一个轻量且强大的代码编辑器,支持Windows,OS X和Linux.内置JavaScript.TypeScript和Node.js支持, ...
- Android 开发之Windows环境下Android Studio安装和使用教程
JDK环境配置: http://www.cnblogs.com/liuhongfeng/archive/2015/12/30/5084896.html Android Studio下载地址:http: ...
- 【很好的分享】zookeeper系列
http://blog.csdn.net/tswisdom/article/details/41522069
- node 全局对象global —— 记录在线人员
最近做毕设的时候,在做查看在线人员这个功能的时候,一直卡顿,我的思路是数据库保存 是否在线 字段,可以在登录时和退出系统修改状态,但如果用户之间关闭窗口时候就没办法向后台发出修改在线状态的请求.我想到 ...
- Mint-UI Picker 三级联动
Mint-UI Picker组件的三级联动 HTML: <mt-picker :slots="slots" value-key="name" @chang ...
- Want To Say Something
2019.3.3 明天要演讲了,在这里为自己打一下气! 加油! 2019.3.31 停课三周的第一次写日志 怎么说这三周结交了很多八班的朋友 在竞赛上一直在学数论快学吐了,但没办法呀还是要为出 ...
- 常见的概率分布类型(Probability Distribution)
统计学中最常见的几种概率分布分别是正态分布(normal distribution),t分布(t distribution),F分布(F distribution)和卡方分布(χ2 distribut ...
- 【THUSC2017】【LOJ2982】宇宙广播 计算几何 高斯消元
题目大意 有 \(n\) 个 \(n\) 维空间中的球,求这些球的所有公切面. 保证不会无解或有无穷多组解. \(n\leq 10\) 题解 你可以认为这是一道传统题. 记公切面为 \(a_1x_1+ ...
- 公共DNS推荐及dns测速
DNS在平时上网中扮演重要角色,如果不注意DNS的话,可能会导致网速慢.弹窗广告.网址打不开.打开不是自己想要的网站.劫持等一系列问题.针对DNS的问题,今天我们就来总结一下,看看哪个DNS服务器最好 ...
- 你值得拥有的Mac PS滤镜插件和特效处理软件合集,不要错过!
以下几款是Mac上强大的Photoshop滤镜插件和特效,可以让我们更加高效率的使用PS,设计和处理出精美的图片. 1. Alien Skin Eye Candy Eye Candy是一款强大酷炫的P ...