Jenkins+Docker自动化部署.Net Core

Jenkins是基于Java开发的一种持续集成工具,主要用于持续、自动的构建/测试软件等相关项目。在Java开发中我们经常能看到使用jenkins来部署,.Net core目前还是比较少见的,但是好的东西我们就应该要拿来使用、借鉴。

1. 安装JenKins

这里使用Docker来安装JenKins,当然也可以直接安装到Linux中。

创建jenkins工作目录

mkdir /usr/local/jenkins

拉取jenkins镜像

docker pull jenkins

这里有个小插曲,我用的是jenkins镜像,默认也是latest一般意味着最后最新版本。很多官方最新镜像也都是如此命名;直到后来安装配置完成后,登录进去提示我不是最新版本,让我更新,并且很多插件已经不支持此版本了。发现当前版本和最新版本还相差好几个。心想这不是官方镜像吗 怎么还是这么旧的版本,最后通过搜索发现,Jenkins官方最新镜像现在已改为jenkins/jenkins的了。

所以最新版是:jenkins/jenkins

Jenkins+Docker自动化部署.Net Core

我们拉取最新lts版本。

docker pull jenkins/jenkins:lts

Jenkins+Docker自动化部署.Net Core

看如下图jenkinsjenkins/jenkins两个镜像的差别,发现常规下的latest版本并不最新的了,它们的创建时间已经是1年以前了。而jenkins/jenkins 则创建时间在2天不到。

所以常规的latest并不意味着最新版本。

Jenkins+Docker自动化部署.Net Core

修改jenkins目录和docker目录权限,这里1000是容器中Jenkins 的用户 uid

chown -R 1000:1000 /usr/local/Jenkins

sudo chown -R 1000:1000 /var/run/docker.sock

尤其docker.sock 这个权限很重要,到时候容器里的Jenkins需要执行docker命令需要的

运行Jenkins 注意后面的镜像名称和版本lts

docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true  -v /usr/local/jenkins:/var/jenkins_home -v /usr/bin/docker:/bin/docker  -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts 

参数解释:

-p 8080:8080 -p 50000:50000 --映射jenkins端口

--name jenkins --容器名称自己命名

privileged=true --授予容器管理员权限

-v /usr/local/jenkins:/var/jenkins_home --映射jenkins目录

-v /usr/bin/docker:/bin/docker --映射docke目录 到时候需要在容器里执行docker命令

-v /var/run/docker.sock:/var/run/docker.sock --映射docker执行命令 到时候需要容器里执行docker命令。

容器是否启动成功最好还是通过docker ps 或者netstat –ntlp |grep 8080 (查看我们容器映射的端口是否监听成功) 查看当前容器是否运行成功。

某些情况下,如权限没有配对,启动会不成功的。

查看正在运行的容器。

docker ps

2. 配置JenKins

查看容器启动成功后,我们可以通过地址+端口访问刚刚运行的Jenkins

例如:8080   

安装成功访问后会如下图所示。

Jenkins+Docker自动化部署.Net Core

提示首次访问需要密码,我们通过刚刚映射的Jenkins目录里查看这个默认密码。

默认密码路径:/usr/local/jenkins/secrets/  (注意前面usr/local/jenkins路径就是刚刚自己映射的目录)

Jenkins+Docker自动化部署.Net Core

查看密码文件

cat initialAdminPassword

输入密码然后继续下一步。

Jenkins+Docker自动化部署.Net Core

下一步如果有出现404的,如下图

网上搜索了解听说是Jenkins的一个bug;部分版本存在。

Jenkins+Docker自动化部署.Net Core

解决办法(以下步骤是解决登录404的;如果没有404则可以跳过)

首先回到Jenkins主目录找到config.xml文件并打开。

Jenkins+Docker自动化部署.Net Core

将<useSecurity> 修改为false

Jenkins+Docker自动化部署.Net Core

停止并重新运行jenkins

重启后一定要重新查看默认密码,否则旧密码是登录不成功的。

登录进去以后这里默认选择推荐的插件。

Jenkins+Docker自动化部署.Net Core

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

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