Centos7+Docker+Jenkins+ASP.NET Core 2.0自动化发布与部署

Docker一直很火热,一直想把原本的Jenkins自动部署工具搬到Docker上面,无奈今年一直忙于各种事情,迟迟未实施这个事情,正好迎来了dotnet core 2.0 的正式发布,升级项目的同时,顺便直接将Jenkins搬到Docker上。为什么要写这篇文章呢?因为找过相关的资料,大多数文章都是基于Ubuntu 安装.net core 又或者 GitLab 进行持续集成 自动部署等等等,并未有人尝试过Centos7.3 上部署 Jenkins 并且 构建 ASP.NET CORE 2.0 的应用。当然笔者表示并不知道为什么ubuntu有这么多人青睐。

接下来,笔者将从本片博文中,粗略的教大家怎么安装Docker 和 Jenkins 并且使用Visual Studio 2017 新建Demo 并实现自动部署,下面话不多说了,来一起看看详细的介绍吧。

环境准备

硬件配置: 1核1G 1M带宽。50G硬盘。

系统环境:CentOS 7.3(64位)

其实用的就是腾讯云

安装Docker

其实安装Docker的过程,大家可以到Docker官网找到自己相对应的安装文档进行安装,Docker区分CE和EE的两个版本,具体这两个版本有什么区别,大家自行查阅相关资料,这里不再概述。教程用的是CE那么就找到对应的官方文档进行安装,以下是教程安装的步骤

1.更新一下包吧,多更无害

# sudo yum -y update

2.安装所需的软件包 (其实这些腾讯云都具备了,只不过怕有些阉割版的系统缺少,所以贴上命令,安装过的使用该命令不会造成伤害)

# sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2

3.使用稳定版的仓库(当然可以使用最新版或测试版的仓库,这个需要官方的说明)

# sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

4.安装Docker ce

# sudo yum install docker-ce

tips:在生产系统上,您应该安装特定版本的Docker CE,而不是始终使用最新版本。

5.启动Docker

# sudo systemctl start docker

6.docker通过运行hello-world映像验证是否正确安装。

# docker run hello-world

如果出现以下的界面,就代表安装成功

Centos7+Docker+Jenkins+ASP.NET Core 2.0自动化发布与部署

配置Docker加速器

此步骤不是必须的,前提是你的环境有梯子或者网速可以的,那么可以忽略这个步骤。

$ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s https://mirror.ccs.tencentyun.com

使用https://mirror.ccs.tencentyun.com这个加速地址的前提是你必须要使用腾讯云,该地址外部无法访问,只有腾讯云才能使用此镜像地址。你可以使用DaoCloud加速地址,具体另行查阅相关资料。

安装Jenkins

首先不直接从Docker Store上直接Pull Jenkins 的 Image 文件,因为待会需要进行dotnet core 的 Docker自动部署,需要对宿主机上的Docker进行直接操作,那么需要挂载 Docker 给 Jenkins Image,所以现在需要自己动手编写 Dockerfile 构建自定义的Jenkins。

# touch Dockerfile # vim Dockerfile

插入以下内容:

FROM jenkins USER root #清除了基础镜像设置的源,切换成腾讯云的jessie源 #使用非腾讯云环境的需要将 tencentyun 改为 aliyun RUN echo '' > /etc/apt/sources.list.d/jessie-backports.list \ && echo "deb jessie main contrib non-free" > /etc/apt/sources.list \ && echo "deb jessie-updates main contrib non-free" >> /etc/apt/sources.list \ && echo "deb jessie/updates main contrib non-free" >> /etc/apt/sources.list #更新源并安装缺少的包 RUN apt-get update && apt-get install -y libltdl7 && apt-get update ARG dockerGid=999 RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group # 安装 docker-compose 因为等下构建环境的需要 RUN curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose RUN chmod +x /usr/local/bin/docker-compose

如果不安装libltdl7 会导致如下这个问题,原因是jenkins容器内部没有这个包

docker: error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or directory Build step 'Execute shell' marked build as failure

在Jenkins操作宿主的Docker的时候会出现拒绝访问的问题,其实就是容器的jenkins用户没有权限访问容器外的docker命令,所以 RUN命令 需要把Jenkins用户加入到Docker用户组

构建Image

# docker build . -t auto-jenkins

Centos7+Docker+Jenkins+ASP.NET Core 2.0自动化发布与部署

出现以上 Successfully 内容代表安装Jenkins成功

在启动Jenkins时,需要先创建一个Jenkins的配置目录,并且挂载到docker 里的Jenkins目录下

# mkdir -p /var/jenkins_home

运行 Jenkins

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wdspdz.html