请选择 进入手机版 | 继续访问电脑版

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

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#问题入口 ASP.NET问题入口

【C#问题提交】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接毕业设计】 面试-葵花宝典下载

官方一群:

官方二群:

查看: 564|回复: 4

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

  [复制链接]
  • TA的每日心情
    开心
    6 天前
  • 签到天数: 1608 天

    [LV.Master]伴坛终老

    4251

    主题

    6175

    帖子

    11万

    积分

    管理员

    IBC编程社区-原道楠

    Rank: 9Rank: 9Rank: 9

    积分
    111214

    推广达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2019-11-8 09:55:33 | 显示全部楼层 |阅读模式

    马上加入IBC,查看更多教程

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x

    超简朴让.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编程社区
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则