超简朴让.NET Core开辟者快速拥有CI/CD的本领-Docker版本
前言
上一篇主动化测试,全面且详细的先容了从零开始到发布版本的步调,这是传统的方式,本次为各人带来的是怎样在5分钟内利用上docker举行CI/CD,毕竟现在的容器化风起云涌,本示例是基于CentOS-7体系,在示例中, jenkins 和摆设 .NET Core 应用步调,都利用 docker 来完成。
起首是安装docker
在服务器上实行下面的下令,安装 docker - <code>yum install docker</code>
复制代码安装完成后,实行下令 docker --version ,输出书籍号证实安装乐成。 - <code>Docker version 19.03.4, build 9013bf583a</code>
复制代码拉取并摆设jenkins
紧接着,立刻拉取 jenkins 的镜像 - <code>docker pull jenkins/jenkins</code>
复制代码拉取乐成后,实行容器摆设,输入下面的下令 - <code>docker run --name myjenkins \
- -u root \
- -d \
- --rm \
- -v /var/run/docker.sock:/var/run/docker.sock \
- -v /usr/bin/docker:/usr/bin/docker \
- -v /var/jenkins_home:/var/jenkins_home \
- -p 8080:8080 -p 50000:50000 \
- jenkins/jenkins:lts</code>
复制代码摆设完成后,可能你须要手动开启防火墙端口 8080 后才可以在外部欣赏器中访问jenkins的站点
开启防火墙端口8080
输入下面的下令,开启8080端口 - <code>firewall-cmd --zone=public --add-port=8080/tcp --permanent
- firewall-cmd --reload</code>
复制代码好了,现在我们可以通过下面的地址访问jenkins的web管理控制台了 - <code>http://{你的IP地址}:8080</code>
复制代码如果你出现了下面的图,不要张皇,简朴实行下面两个步调就可以管理标题了。
修改步调
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支持即可
这里我选择Linux版本
天生的Dockerfile文件如下 - <code>FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
- WORKDIR /app
- EXPOSE 80
- FROM microsoft/dotnet:2.2-sdk AS build
- WORKDIR /src
- COPY ["src/Ron.Blogs/Ron.Blogs.csproj", "src/Ron.Blogs/"]
- RUN dotnet restore "src/Ron.Blogs/Ron.Blogs.csproj"
- COPY . .
- WORKDIR "/src/src/Ron.Blogs"
- RUN dotnet build "Ron.Blogs.csproj" -c Release -o /app
- FROM build AS publish
- RUN dotnet publish "Ron.Blogs.csproj" -c Release -o /app
- FROM base AS final
- WORKDIR /app
- COPY --from=publish /app .
- ENTRYPOINT ["dotnet", "Ron.Blogs.dll"]</code>
复制代码这里天生的文件着实是有点小标题的,由于我们是在项目中天生的Dockerfile文件,而上面的脚本中,COPY 的下令实行的目次却是从 /src 开始,如果我们直接实行 docker build ,会提示找不到该项目文件 src/Ron.Blogs/Ron.Blogs.csproj,精确的管理方法是将Dockerfile文件移动到src同级目次,即管理方案根目次下,如下图
开始构建容器化实例
由于我们将在容器中编译.NET Core 步调,以是当地服务器不须要安装 .NET Core SDK。接下来的事变就变得非常简朴了,上jenkins去创建一个使命,然后作一些简朴的配置后就开始构建。
起首创建使命
配置git堆栈地址
配置实行shell下令
输入下面的脚本- <code>docker build -t blogs .
- docker run --rm -d --name blogs -p 15002:80 blogs
- echo "success"</code>
复制代码就如许,一个完备的流程走完了,现在访问容器实例地址: http://172.16.1.202:15002/api/blog/detail/1
完善运行乐成!
留意事项
上面的脚本在第一次运行的时间没有标题,但是在第二次构建的时间,将会提示实例名称 blogs 已存在,我们须要修改一下构建脚本,到场 docker stop blogs - <code>docker build -t blogs .
- docker stop blogs
- docker run --rm -d --name blogs -p 15002:80 blogs
- echo "success"</code>
复制代码竣事语
上面就是本次的快速拥抱CI/CD的全部内容,看完点赞,保持好风俗! |