欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法

程序员文章站 2022-03-22 08:10:28
前言 本文主要介绍了关于.net core自动化部署用docker版jenkins部署dotnetcore应用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看...

前言

本文主要介绍了关于.net core自动化部署用docker版jenkins部署dotnetcore应用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的实现步骤吧。

安装docker版jenkins

因为jenkins的docker版本本身没有 dotnetcore的环境,所以我们需要先自己动手制作下包含dotnet环境的jenkins docker container

dockerfile

from jenkins/jenkins

# switch to root to install .net core sdk
user root

# show distro information!
run uname -a && cat /etc/*release

# based on instructiions at https://www.microsoft.com/net/download/linux-package-manager/debian9/sdk-current
# install dependency for .net core 2
run apt-get update
run apt-get install -y curl libunwind8 gettext apt-transport-https

# based on instructions at https://www.microsoft.com/net/download/linux-package-manager/debian9/sdk-current
# install microsoft.qpg
run curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
run mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
run sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch main" > /etc/apt/sources.list.d/dotnetdev.list'

# install the .net core framework
run apt-get update
run apt-get install -y dotnet-sdk-2.1.4

# switch back to the jenkins user.
user jenkins

为了方便我已经把配置信息放到了github上大家可以访问直接使用

https://github.com/yahuiwong/jenkins-dotnet-core ()

使用步骤

初始化docker环境

git clone https://github.com/yahuiwong/jenkins-dotnet-core.git
cd jenkins-dotnet-core
sh init.sh
docker-compose up -d

初始化配置jenkins

  • open ip:8080 on the browser
  • vi jenkins_home/secrets/initialadminpassword & set the initialadminpassword string to your jenkins page

至此安装完毕。

配置jenkins构建dotent core的任务

构建一个*风格的软件项目

.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法

配置源码管理资料

.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法

注意:初次配置的话 需要在 添加一个可以访问代码地址的 credentials

配置构建脚本

如下图步骤添加打包脚本

.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法

打包脚本示例

echo '============查看打包环境================' 
pwd
ls
echo $path
whoami
which dotnet
dotnet --info
dotnet --version
echo '============================begin restore======================================='
dotnet restore
echo '============================end restore======================================='
echo '============================cd project======================================='
cd ./您的项目路径
echo '============================begin build======================================='
dotnet build # 为了生成xml注释文件 用于swagger注释
rm -rf $workspace/jenkins_publish
mkdir $workspace/jenkins_publish
dotnet publish -c:release -o $workspace/jenkins_publish # 如果针对给定运行时发布项目带上-r 如:-r centos.7-x64
cp ./bin/debug/netcoreapp2.0/您的项目路径.xml $workspace/jenkins_publish/ # 拷贝swagger注释
echo '============================end build======================================='

配置发布途径

发布插件publish over ftp使用说明

我这里使用的是 jenkins的publish over ftp插件,安装好此插件之后在 系统管理->系统设置->publish over ftp 里可以新增一个你要发布的ftp服务器信息。为了保证ftp可以正常连接建议尝试下右下角的test configuration确认success

上面我们已经配置好publish over ftp要用的ftp账号,新增我们新增构建后操作如下图选择此插件

.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法

然后选择配置好的ftp选项,配置如下所示

.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法

注意:这里的配置信息中 jenkins_publish是和打包脚本对应的

保存打包任务

立即构建

点击立即构建之后,把构建任务开始进行中

.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法

如果想看的实时的构建信息可以点击如下图看到控制台输出

.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法

构建完毕

打开部署站点地址,发现站点已经运行起来了

.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法

重点说明

nuget配置说明

如果您的.net core项目使用的了第三方或者自建nuget服务,您需要在 配置下 jenkins_home/.nuget/nuget/nuget.config的信息

如我的使用了国内博客园的nuget加速地址和自建的nuget服务配置如下

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <packagesources>
  <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolversion="3" />
  <add key="nuget.cnblogs.com" value="https://nuget.cnblogs.com/v3/index.json" />
  <add key="dotnet.myget.org/f/aspnetcore-dev/api/v3/index.json" value="https://dotnet.myget.org/f/aspnetcore-dev/ap
i/v3/index.json" />
  <add key="192.168.1.32:9001/nuget" value="http://192.168.1.32:9001/nuget" />
 </packagesources>
 <packagerestore>
  <add key="enabled" value="true" />
  <add key="automatic" value="true" />
 </packagerestore>
 <bindingredirects>
  <add key="skip" value="false" />
 </bindingredirects>
 <packagemanagement>
  <add key="format" value="0" />
  <add key="disabled" value="false" />
 </packagemanagement>
</configuration>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。