马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

超简单让.NET Core开发者快速拥有CI/CD的能力-Docker版本

  [复制链接]
查看2843 | 回复8 | 2019-11-8 09:55:33 | 显示全部楼层 |阅读模式

超简朴让.NET Core开辟者快速拥有CI/CD的本领-Docker版本

前言

上一篇主动化测试,全面且详细的先容了从零开始到发布版本的步调,这是传统的方式,本次为各人带来的是怎样在5分钟内利用上docker举行CI/CD,毕竟现在的容器化风起云涌,本示例是基于CentOS-7体系,在示例中, jenkins 和摆设 .NET Core 应用步调,都利用 docker 来完成。

起首是安装docker

在服务器上实行下面的下令,安装 docker

  1. <code>yum install docker</code>
复制代码

安装完成后,实行下令 docker --version ,输出书籍号证实安装乐成。

  1. <code>Docker version 19.03.4, build 9013bf583a</code>
复制代码

拉取并摆设jenkins

紧接着,立刻拉取 jenkins 的镜像

  1. <code>docker pull jenkins/jenkins</code>
复制代码

拉取乐成后,实行容器摆设,输入下面的下令

  1. <code>docker run --name myjenkins \
  2. -u root \
  3. -d \
  4. --rm \
  5. -v /var/run/docker.sock:/var/run/docker.sock \
  6. -v /usr/bin/docker:/usr/bin/docker \
  7. -v /var/jenkins_home:/var/jenkins_home \
  8. -p 8080:8080 -p 50000:50000 \
  9. jenkins/jenkins:lts</code>
复制代码

摆设完成后,可能你须要手动开启防火墙端口 8080 后才可以在外部欣赏器中访问jenkins的站点

开启防火墙端口8080

输入下面的下令,开启8080端口

  1. <code>firewall-cmd --zone=public --add-port=8080/tcp --permanent
  2. firewall-cmd --reload</code>
复制代码

好了,现在我们可以通过下面的地址访问jenkins的web管理控制台了

  1. <code>http://{你的IP地址}:8080</code>
复制代码

如果你出现了下面的图,不要张皇,简朴实行下面两个步调就可以管理标题了。

095838dngpzv7hd3igvhrv.png

修改步调

1、修改/var/jenkins_home/updates/default.json,搜索 google.com ,改为 baidu.com 就可以了
2、修改/var/jenkins_home/hudson.model.UpdateCenter.xml,这个文件是jenkins下载插件的默认源地址,将:https://updates.jenkins.io/update-center.json 中的 https 修改为 http,然后实行下令 docker restart myjenkins 重启 jenkins 实例就可以了。

为.NET Core 编写Dockerfile文件

Visual Studio 已经为我们集成了docker的支持,以是根本上我们是不须要编写Dockerfile文件的,只要鼠标右键点击项目,添加docker支持即可

095838hl1i8udzh6w6cq71.png

这里我选择Linux版本

095839w2gqx2okbbv2qvhh.png

天生的Dockerfile文件如下

  1. <code>FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
  2. WORKDIR /app
  3. EXPOSE 80
  4. FROM microsoft/dotnet:2.2-sdk AS build
  5. WORKDIR /src
  6. COPY ["src/Ron.Blogs/Ron.Blogs.csproj", "src/Ron.Blogs/"]
  7. RUN dotnet restore "src/Ron.Blogs/Ron.Blogs.csproj"
  8. COPY . .
  9. WORKDIR "/src/src/Ron.Blogs"
  10. RUN dotnet build "Ron.Blogs.csproj" -c Release -o /app
  11. FROM build AS publish
  12. RUN dotnet publish "Ron.Blogs.csproj" -c Release -o /app
  13. FROM base AS final
  14. WORKDIR /app
  15. COPY --from=publish /app .
  16. ENTRYPOINT ["dotnet", "Ron.Blogs.dll"]</code>
复制代码

这里天生的文件着实是有点小标题的,由于我们是在项目中天生的Dockerfile文件,而上面的脚本中,COPY 的下令实行的目次却是从 /src 开始,如果我们直接实行 docker build ,会提示找不到该项目文件 src/Ron.Blogs/Ron.Blogs.csproj,精确的管理方法是将Dockerfile文件移动到src同级目次,即管理方案根目次下,如下图

095839kigbnni8isris5ib.png

开始构建容器化实例

由于我们将在容器中编译.NET Core 步调,以是当地服务器不须要安装 .NET Core SDK。接下来的事变就变得非常简朴了,上jenkins去创建一个使命,然后作一些简朴的配置后就开始构建。

起首创建使命

095839jm6rr6rraat8s8m0.png

配置git堆栈地址

095840el8lf4uuljnuu1o3.png

配置实行shell下令

095840o83n8hrnjp7njnca.png

输入下面的脚本

  1. <code>docker build -t blogs .
  2. docker run --rm -d --name blogs -p 15002:80 blogs
  3. echo "success"</code>
复制代码

就如许,一个完备的流程走完了,现在访问容器实例地址: http://172.16.1.202:15002/api/blog/detail/1

095840a8o8qd3q6a659aa9.png

完善运行乐成!

留意事项

上面的脚本在第一次运行的时间没有标题,但是在第二次构建的时间,将会提示实例名称 blogs 已存在,我们须要修改一下构建脚本,到场 docker stop blogs

  1. <code>docker build -t blogs .
  2. docker stop blogs
  3. docker run --rm -d --name blogs -p 15002:80 blogs
  4. echo "success"</code>
复制代码

竣事语

上面就是本次的快速拥抱CI/CD的全部内容,看完点赞,保持好风俗!

C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则