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

Dockerfile

  1. FROM jenkins/jenkins
  2. # Switch to root to install .NET Core SDK
  3. USER root
  4. # Show distro information!
  5. RUN uname -a && cat /etc/*release
  6. # Based on instructiions at https://www.microsoft.com/net/download/linux-package-manager/debian9/sdk-current
  7. # Install dependency for .NET Core 2
  8. RUN apt-get update
  9. RUN apt-get install -y curl libunwind8 gettext apt-transport-https
  10. # Based on instructions at https://www.microsoft.com/net/download/linux-package-manager/debian9/sdk-current
  11. # Install microsoft.qpg
  12. RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
  13. RUN mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
  14. 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'
  15. # Install the .NET Core framework
  16. RUN apt-get update
  17. RUN apt-get install -y dotnet-sdk-2.1.4
  18. # Switch back to the jenkins user.
  19. USER jenkins

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

https://github.com/YahuiWong/jenkins-dotnet-core

使用步骤

  1. git clone https://github.com/YahuiWong/jenkins-dotnet-core.git
  2. cd jenkins-dotnet-core
  3. sh init.sh
  4. docker-compose up -d
  1. Open ip:8080 on the browser

  2. vi jenkins_home/secrets/initialAdminPassword & Set the initialAdminPassword string to your jenkins page

至此安装完毕。

jenkins-docker-dotnet-core-publish-201853118046

jenkins-docker-dotnet-core-publish-201853118236

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

如下图步骤添加打包脚本
jenkins-docker-dotnet-core-publish-201853118512

打包脚本示例

  1. echo '============查看打包环境================'
  2. pwd
  3. ls
  4. echo $PATH
  5. whoami
  6. which dotnet
  7. dotnet --info
  8. dotnet --version
  9. echo '============================begin restore======================================='
  10. dotnet restore
  11. echo '============================end restore======================================='
  12. echo '============================cd project======================================='
  13. cd ./您的项目路径
  14. echo '============================begin build======================================='
  15. dotnet build # 为了生成XML注释文件 用于swagger注释
  16. rm -rf $WORKSPACE/jenkins_publish
  17. mkdir $WORKSPACE/jenkins_publish
  18. dotnet publish -c:Release -o $WORKSPACE/jenkins_publish # 如果针对给定运行时发布项目带上-r 如:-r centos.7-x64
  19. cp ./bin/Debug/netcoreapp2.0/您的项目路径.xml $WORKSPACE/jenkins_publish/ # 拷贝swagger注释
  20. echo '============================end build======================================='

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

上面我们已经配置好Publish Over FTP要用的ftp账号,新增我们新增构建后操作如下图选择此插件
jenkins-docker-dotnet-core-publish-2018531182746

然后选择配置好的ftp选项,配置如下所示
jenkins-docker-dotnet-core-publish-2018531183019

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

点击立即构建之后,把构建任务开始进行中
jenkins-docker-dotnet-core-publish-2018531184031

如果想看的实时的构建信息可以点击如下图看到控制台输出
jenkins-docker-dotnet-core-publish-2018531184219

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

jenkins-docker-dotnet-core-publish-2018531184328

如果您的.NET CORE项目使用的了第三方或者自建nuget服务,您需要在 配置下 jenkins_home/.nuget/NuGet/NuGet.Config的信息
如我的使用了国内博客园的nuget加速地址和自建的nuget服务配置如下

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <configuration>
  3. <packageSources>
  4. <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  5. <add key="nuget.cnblogs.com" value="https://nuget.cnblogs.com/v3/index.json" />
  6. <add key="dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json" value="https://dotnet.myget.org/F/aspnetcore-dev/ap
  7. i/v3/index.json" />
  8. <add key="192.168.1.32:9001/nuget" value="http://192.168.1.32:9001/nuget" />
  9. </packageSources>
  10. <packageRestore>
  11. <add key="enabled" value="True" />
  12. <add key="automatic" value="True" />
  13. </packageRestore>
  14. <bindingRedirects>
  15. <add key="skip" value="False" />
  16. </bindingRedirects>
  17. <packageManagement>
  18. <add key="format" value="0" />
  19. <add key="disabled" value="False" />
  20. </packageManagement>
  21. </configuration>

版权声明:本文为YahuiWang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/YahuiWang/p/jenkins-docker-dotnet-core-publish.html