首先盗图一张

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。

此处需要注意的是:

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

centos7 docker升级到最新稳定版本

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的更多相关文章

  1. Docker + Jenkins 持续部署 ASP.NET Core 项目

    Docker 是个好东西,特别是用它来部署 ASP.NET Core Web 项目的时候,但是仅仅的让程序运行起来远远不能满足我的需求,如果能够像 DaoCloud 提供的持续集成服务那样,检测 gi ...

  2. k8s+Jenkins+GitLab-自动化部署asp.net core项目

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 此文阅读目录: 1.闲聊 ...

  3. Azure 部署 Asp.NET Core Web App

    在云计算大行其道的时代,当你在部署一个网站时,第一选择肯定是各式各样的云端服务.那么究竟使用什么样的云端服务才能够以最快捷的方式部署一个 ASP.NET Core 的网站呢?Azure 的 Web A ...

  4. [原]CentOS7.2最小安装环境部署Asp.NET Core笔记

    转载请注明原作者(think8848)和出处(http://think8848.cnblogs.com) 写在前面的话 不知不觉在cnblogs上注册已经10多年了,看我的园龄就直接暴露了我实际年龄, ...

  5. ubuntu16.4下用jexus部署asp.net core rtm

    上篇文章介绍了下用vs发布部署到iis环境,今天说下ubuntu 下部署asp.net core,不需要安装.net core sdk,自带运行时方式部署,利用jexus服务器转发请求到asp.net ...

  6. win10下iis部署asp.net core rtm

    随着ASP.NET Core 1.0 rtm的发布,网上有许多相关.net core 相关文章,今刚好有时间也在win10环境上搭建下 ASP.NET Core的部署环境,把过程记录下给大家. 1. ...

  7. Jexus + Kestrel 部署 asp.net core

    结合Jexus + Kestrel 部署 asp.net core 生产环境 ASP.NET Core 是微软的全新的框架.这一框架的目标 ︰ 跨平台 针对云应用优化 解除 System.Web 的依 ...

  8. CentOS 7部署ASP.NET Core应用程序

    看了几篇大牛写的关于Linux部署ASP.NET Core程序的文章,今天来实战演练一下.2017年最后一个工作日,提前预祝大家伙元旦快乐.不扯淡,直接进入正题.您有任何问题请在评论区留言. 1.环境 ...

  9. 如何优雅的利用Windows服务来部署ASP.NET Core程序

    上一篇文章中我给大家讲述了五种部署ASP.NET Core网站的方法,其中有一种方式是通过Windows服务来进行部署,这样既可以做到开启自启动,又不会因为iis的反向代理而损失部分性能.但是美中不足 ...

随机推荐

  1. Tutorial 02_熟悉常用的HDFS操作

    Shell命令实现: (1)向HDFS 中上传任意文本文件,如果指定的文件在HDFS 中已经存在,则由用户来指定是追加到原有文件末尾还是覆盖原有的文件: (2) 从HDFS 中下载指定文件,如果本地文 ...

  2. Linux centos yum仓库 自制

    内网下Yum仓库搭建配置 1.实验环境 虚拟机环境: VMware 12 版本虚拟机 网络环境: 内网 IP 段:172.16.1.0 外网 iP 段(模拟):10.0.0.0 实验基础:(能够上网, ...

  3. spring整合quartz异常:org.quartz.JobPersistenceException: Couldn't clean volatile data: Unknown column 'IS_VOLATILE' in 'where clause'

    自己的SSM项目中要用到定时器,初期使用Timer,后来用spring 的schedule,都比较简单,所以功能比较单一.后来就研究quartz,准备整合到项目中.遇到了异常,异常内容如下: [201 ...

  4. hadoop distcp 命令使用指导

    1.概述 DistCp(distributed copy)是一款被用于大型集群间/集群内的复制工具. 它使用MapReduce来实现其分布,错误处理和恢复以及报告.它将文件列表和目录扩展为map任务的 ...

  5. LeetCode136.只出现一次的数字

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: 输入: [ ...

  6. NPOI的基本用法,导出Excel

    void DownloadForAccountIndex(IReadOnlyList<AccountInfoView> list) { NPOI.HSSF.UserModel.HSSFWo ...

  7. 【NLP】选择目标序列:贪心搜索和Beam search

    构建seq2seq模型,并训练完成后,我们只要将源句子输入进训练好的模型,执行一次前向传播就能得到目标句子,但是值得注意的是: seq2seq模型的decoder部分实际上相当于一个语言模型,相比于R ...

  8. 前端动态菜单-bootstrap-treeview

    一.bootstrap-treeview 官网 Demo bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多级列表树插件.该jQuery插件基于Twitter ...

  9. Go语言中数组

    数组是一个值类型 func ArrayTest1(){ var arryA [3]int = [3]int{1,2,3} //创建一个数组B,将B中第二个元素设置为200 arryB := arryA ...

  10. VMware虚拟机里Centos7的IP地址查看方法

    电脑的虚拟机里面安装了一个Cetos 7 ,想用Xshell链接进行操作,发现没有IP显示,需要IP地址,我才能进行连接,用命令ip addr查看下: 发现ens33 没有inet 这个属性,那么就没 ...