回到目录

首先要清楚本文是讲dotnetcore项目在生产和测试环境部署的,这在过去的frameworks项目里,我们可以通过设置web.config的环境变量,然后再发布时指定具体的变量,去实现生产环境和测试环境的发布,发布之后,每个环境有自己的配置文件,frameworks会更新环境把web.config进行合并,而在dotnetcore项目里,这种方法不适用了,所以需要在这里再总结一下了。

环境说明

  1. jenkins自动部署
  2. docker,docker-swarm集群
  3. dotnet core api项目

要实现功能

  1. 将调试,测试,生产等环境的配置信息提前配置好,不需要上线后在去修改它,实现自动化发布和部署
  2. dotnet core项目配置自己的appsettings.development.json和appsettings.production.json文件
  3. 运行容器前需要设置环境变量,dockerfile打到镜像也行,docker service启动时加载也可以

实现部署

jenkins调用sh脚本添加环境参数
#!/bin/sh
set -xe
cd ${WORKSPACE}/deploy/
/bin/bash publish.sh
/bin/bash build.sh "Production"
build.sh脚本添加了描述环境的输入参数
#!/bin/sh
set -ex
export IMAGE_NAME=svt/sms
export Registry_Url="ciregistry.i-counting.cn:8443"
#输入参数source,目前支持Development外测和Production生产环境两个值
docker build --no-cache --pull -t $IMAGE_NAME --build-arg source=$ ./
docker tag $IMAGE_NAME $Registry_Url/$IMAGE_NAME
docker push $Registry_Url/$IMAGE_NAME
Dockerfile里添加了设置环境变量的代码
FROM microsoft/aspnetcore:2.0
ARG source
run echo $source
COPY sources.list /etc/apt/sources.list
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
RUN apt-get update && apt-get -y install libgdiplus && apt-get clean
ENV ASPNETCORE_ENVIRONMENT=$source
WORKDIR /app
EXPOSE
COPY obj/Docker/publish .
ENTRYPOINT ["dotnet", "Validate.dll"]
aspnetcore的项目里添加了Development和Production两种配置的appsettings.json
最后就是代码获取配置时,一定要加上环境参数
config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory())
  .AddJsonFile(file, optional: true, reloadOnChange: true)
  .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
  .Build();

好了,今天咱们主要实现的是比较实用的按环境去部署项目的方法!

希望本文章对各位有所帮助!

回到目录

Jenkins~配合Docker及dotnetCore进行生产和测试环境的灵活部署的更多相关文章

  1. Spring Boot项目在多环境下(开发、生产或测试环境)调用不同配置文件方式

    写在前面 最近由于项目要求,原先的项目只有开发环境的项目配置,后来不利于线上测试,于是,最近对于SpringBoot这部分多环境配置在网上查找了相关资料,并实现了配置,于是为了防止遗忘,特在此进行总结 ...

  2. docker+selenium Grid搭建自动化分布式测试环境

    自动化测试需要考虑到兼容性的时候,之前的做法是每个执行机上安装不同版本的浏览器,实际上这样做会很浪费硬件资源,现在有了docker容器化技术,让一切变得简单. 工具清单: 语言:python 2.7 ...

  3. Kubernetes笔记(三):Gitlab+Jenkins Pipeline+Docker+k8s+Helm自动化部署实践(干货分享!)

    通过前面两篇文章,我们已经有了一个"嗷嗷待哺"的K8s集群环境,也对相关的概念与组件有了一个基本了解(前期对概念有个印象即可,因为只有实践了才能对其有深入理解,所谓"纸上 ...

  4. Jenkins实现测试环境到生产环境一键部署(Windows)

    前言: 因为dotnet在发布站点后,然后再上传服务时,会因为各种的网速问题,导致站点瞬间挂掉!那么通过一键部署,先在测试站点测试好的文件,复制到正式站点上的一个缓冲区,进行预热配置,之后再本机进行文 ...

  5. .NET持续集成与自动化部署之路第三篇——测试环境到生产环境的一键部署策略(Windows)

    Jenkins测试环境到生产环境的一键部署策略(Windows) 一.前言     前面我们已经初步实现了开发集成环境.测试环境的持续集成(自动化构建.自动化测试.自动化部署).但生产环境自动化部署迟 ...

  6. Spring.profile配合Jenkins发布War包,实现开发、测试和生产环境的按需切换

    前两篇不错 Spring.profile实现开发.测试和生产环境的配置和切换 - Strugglion - 博客园https://www.cnblogs.com/strugglion/p/709102 ...

  7. Jenkins集成Docker镜像实现自动发布

    1. 思路&流程 Jenkins集成Docker镜像实现自动发布与Jenkins发布mavne项目思路一样总体流程 为:Jenkins 拉去远端源码 -- gitl实现应用打包 -- jenk ...

  8. Docker: Jenkins与Docker的自动化CI/CD流水线实战

    什么是CI/CD 持续集成(Continuous Integration,CI):代码合并.构建.部署.测试都在一起,不断地执行这个过程,并对结果反馈.持续部署(Continuous Deployme ...

  9. Docker:使用Jenkins构建Docker镜像

    Docker  彭东稳  1年前 (2016-12-27)  10709次浏览  已收录  0个评论 一.介绍Jenkins Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从 ...

随机推荐

  1. 毕业原版=[约克大学毕业证书]York原件一模一样证书

    约克大学毕业证[微/Q:2544033233◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归& ...

  2. 解决非root用户使用docker的办法

    通常我们使用Docker的时候都是使用的root,官方说法如下 The docker daemon binds to a Unix socket instead of a TCP port. By d ...

  3. openoffice excel word 转换pdf 支持本地调用和远程调用

    OpenOffice.org 是一套跨平台的办公室软件套件,能在Windows.Linux.MacOS X (X11)和 Solaris 等操作系统上执行.它与各个主要的办公室软件套件兼容.OpenO ...

  4. 终于将SAP系统完全配置通过了

    花了近10天的时间,每天晚上加班加点,终于将SAP S4 1610 IDES系统从零到有,从头到尾配置一遍.目前只启用了一家模拟公司,从基础数据的设置,到销售订单开立(含按单按库需求),跑MRP需求, ...

  5. Discuz3.4-SSRF-从触发点到构造payload

    目录 SSRF逆向分析 0x00 前言 0x01 收集情报 0x02 尝试逆向找到触发点 0x03 尝试构造payload 0x04 总结 SSRF逆向分析 0x00 前言 之前有复现过一些漏洞,但是 ...

  6. 菜鸟如何反转到资深Web安全工程师

    90后理工男,计算机专业,毕业于985院校,从事Web安全工作,两年多的时间里先后跳槽3家公司,跳槽理由主要有以下几点:加班多.薪资低.工作内容枯燥,不想安于现状,寄希望于通过跳槽找到一个“钱多.活少 ...

  7. ASP.NET Core 实现带认证功能的Web代理服务器

    引言 最近在公司开发了一个项目,项目部署架构图如下: 思路 如图中文本所述,公司大数据集群不允许直接访问外网,需要一个网关服务器代理请求,本处服务器A就是边缘代理服务器的作用. 通常技术人员最快捷的思 ...

  8. sau交流学习社区--看小说的lovebook一个无线端BS应用

    一.前言 loveBook爱上阅读,是一款webapp的读小说等书籍的并且阅读的应用.如果觉得可以,欢迎fork和star. 自己最近在追斗破苍穹电视剧,下班时候在地铁上总听到有人说,斗破苍穹书籍比电 ...

  9. [数据库锁机制] 深入理解乐观锁、悲观锁以及CAS乐观锁的实现机制原理分析

    前言: 在并发访问情况下,可能会出现脏读.不可重复读和幻读等读现象,为了应对这些问题,主流数据库都提供了锁机制,并引入了事务隔离级别的概念.数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务 ...

  10. 机器学习——KMeans聚类,KMeans原理,参数详解

    0.聚类 聚类就是对大量的未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小,聚类属于无监督的学习方法. 1.内在相似性的度量 聚类是根据数据 ...