首页 > 其他 > 详细

使用docker快速部署Jenkins

时间:2020-02-03 19:28:31      阅读:68      评论:0      收藏:0      [点我收藏+]

先安装配置docker

安装不说了,注意非root用户执行docker会报docker.sock访问权限错误,需要把自己加到docker组。

然后因为国内访问dockerhub速度太慢,所以需要配置国内dockerhub镜像。这里用中科大的镜像:

sudo vim /etc/docker/daemon.json

内容如下(dns设置可有可无):

{
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"],
    "dns": ["8.8.8.8", "8.8.4.4"]
}

然后重启dockerd:

sudo systemctl restart docker

拉取并运行Jenkins

docker pull jenkins/jenkins:lts-alpine

(我直接root了,你们注意安全)
技术分享图片

创建挂载用的工作目录(打算把数据保存在~/jenkins/data

cd
mkdir -p jenkins/data
sudo chown 1000:1000 jenkins -R  # jenkins镜像默认是用1000这个用户执行,不修改所有会无法创建文件

然后我们写个启动脚本,参考(jenkinsci官方github)[https://github.com/jenkinsci/docker/blob/master/README.md]即可:

cd ~/jenkins
vim init.sh

# 内容如下:

cd `dirname $0`  && echo "PWD: "$(pwd)

docker run -d --name myjenkins     --net=host     -v `pwd`/data:/var/jenkins_home     --restart=always     -e TZ="Asia/Shanghai"     --env JAVA_OPTS="-Djava.util.logging.config.file=/var/jenkins_home/log.properties"     --add-host=dockerhost:172.17.0.1     jenkins/jenkins:lts-alpine

    # -p 8080:8080     # -p 50000:50000 \

然后创建容器并运行:

cd ~/jenkins && bash init.sh

然后访问8080端口初始化Jenkins,再设置项目就行了。如果要备份还原项目,直接备份还原data文件夹就行了。(data就是主机直接安装Jenkins时的/var/lib/jenkins目录)

使用Jenkins

接下来的问题就是如何使用Jenkins在主机或其他容器部署项目了。(我猜你也不会想把项目和Jenkins部署在同一个容器的)

一开始我挺疑惑Docker中的Jenkins怎么调用主机的程序,查了资料还发现了使用fabric进行ssh的操作:

https://blog.csdn.net/raptor/article/details/72027036

感觉这还挺麻烦的。

其实Jenkins是可以配置节点的(默认自身所在环境是master节点),默认就可以ssh连接各节点,把各项目指派到对应的节点去部署。这个图反应了任务和节点的关系:

技术分享图片

所以,要在主机部署,直接配置主机作为Jenkins的一个节点就行了:(对于docker中的Jenkins环境,我们就让它是master节点,不给它分配任务就行了)

技术分享图片

配置项目的时候指定对应的标签或节点名字即可:(用标签可以对应多个节点,注意不要有多余空格)

技术分享图片

点标签名字还可以看到额外的信息:

技术分享图片

在Docker的主机部署大概就是这样。

称Jenkins所在主机为A,如果想到其他机器(比如服务器B)部署项目(比如项目C),也不需要在B中安装Jenkins,只要在A的Jenkins控制台新建节点就行了,配置好B的地址(ip/url)和ssh密钥,然后在A的Jenkins控制台新建项目C,限制在B对应的节点执行。 (注意:密钥用户要有部署项目的操作权限)


  • 节点列表

技术分享图片

  • master节点的执行者数量设为0可以禁用它,其他节点也可以设为0禁用,而不需要删除,这样可以保留配置

技术分享图片

https://www.cnblogs.com/amyzhu/p/10957667.html (--add-host)
https://www.cnblogs.com/leolztang/p/6934694.html

使用docker快速部署Jenkins

原文:https://www.cnblogs.com/dylanchu/p/12254248.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!