目录

一、为什么用jenkins

二、Jenkins到底是什么?

三、Docker安装Jenkins

1.拉取jenkins镜像

2.创建Jenkins挂载目录

3.为挂载目录赋予权限

4.运行jenkins

5.查看Jenkins密码

6.配置jenkins插件

7.配置镜像加速

四、Jenkins结合Github拉取源码

1、配置Personal Access Token

2、新建项目

3、配置github源码拉取

3.1 配置凭据

3.2 配置github服务

3.3 在刚刚创建的项目配置github

3.4 选择项目“立即构建”

五、基于Docker自动构建项目

1、安装docker插件

2、配置Docker服务

2.1 开启Docker服务的2376端口

2.2 配置Docker服务

3、jenkins配置自动部署项目

3.1 配置“构建环境”--添加“build/publish docker image”

3.2 配置Docker服务打包镜像

3.3 配置SSH插件

3.4 保存后构建项目

3.5 直接访问项目即可实现自动部署


docker jenkins不执行sh脚本_运维

一、为什么用jenkins

主要是我们现在的项目都是采用手动部署的,每当给项目中新增一个功能就必须执行(打包--测试--上传测试修复的包到指定服务器--部署上线),这个流程操作起来繁杂,不小心就可能导致部署失败;急需找到一个方式来解决本来就机械化的工作,于是就选择了Jenkins。它能够实现打包、测试、审验、部署一键操作,而已也支持很多插件兼容,操作起来简单方便。

二、Jenkins到底是什么?

Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。下面为项目持续集成和交互的流程图

docker jenkins不执行sh脚本_jenkins_02

三、Docker安装Jenkins

1.拉取jenkins镜像

启动docker $ systemctl start docker 拉取镜像 $ docker pull jenkins/jenkins 查看镜像

docker jenkins不执行sh脚本_jenkins_03

2.创建Jenkins挂载目录

稍后可以将docker内的目录挂载到此目录上,方便操作容器内文件夹而不需要进入容器 $ mkdir -p /var/jenkins_home

3.为挂载目录赋予权限

chmod 777 /var/jenkins_home

4.运行jenkins

docker jenkins不执行sh脚本_运维_04

启动一个docker容器,-d是后台执行 -p是本机49001映射容器中的8080端口,该端口是Jenkins默认监听端口 -v表示将容器中的/var/jenkins_home挂载到本机的/var/jenkins_home目录,前者为本机地址,后者为容器地址 --name表示让其命名为myjenkins 最后jenkins/jenkins则是本次运行使用的镜像

docker jenkins不执行sh脚本_运维_05

可通过显示容器命令查看运行情况

docker jenkins不执行sh脚本_jenkins_06

至此jenkins安装完成并运行,可通过ip地址加上端口号49001访问 界面如下

docker jenkins不执行sh脚本_jenkins_07

如无法打开,请检查容器启动情况并通过查看错误日志排查错误情况 docker logs myjenkins 使用云服务器请检查防火墙是否开放对应端口

5.查看Jenkins密码

docker jenkins不执行sh脚本_运维_08

6.配置jenkins插件

启动jenkins后,可选择使用推荐插件或自定义插件。插件安装失败或速度过慢,可通过配置镜像加速解决。

7.配置镜像加速

docker jenkins不执行sh脚本_运维_09

docker jenkins不执行sh脚本_docker_10

至此,安装配置完成

四、Jenkins结合Github拉取源码

前置条件:

(1)jenkins已经安装完成,参考我的另一篇文章进行安装配置:jenkins安装及配置

(2)Jenkins服务器已经拥有一个公网IP地址,由于我是本地搭建的,所以我用NATPP实现内网穿透。

(3)插件安装:CloudBees Credentials 、GitHub API Plugin、SSH Credentials Plugin、Git client plugin、SCM API、Mailer Plugin 、Plain Credentials Plugin 、GIT plugin、GitHub Plugin

1、配置Personal Access Token

在对项目有写权限的用户上获取token进入github –> setting –> Developer settings –>  Personal Access Token

docker jenkins不执行sh脚本_jenkins_11

docker jenkins不执行sh脚本_Jenkins_12

2、新建项目

docker jenkins不执行sh脚本_运维_13

3、配置github源码拉取

3.1 配置凭据

docker jenkins不执行sh脚本_Docker_14

3.2 配置github服务

docker jenkins不执行sh脚本_jenkins_15

3.3 在刚刚创建的项目配置github

docker jenkins不执行sh脚本_Docker_16

3.4 选择项目“立即构建”

docker jenkins不执行sh脚本_运维_17

五、基于Docker自动构建项目

1、安装docker插件

安装docker插件

docker jenkins不执行sh脚本_运维_18

2、配置Docker服务

2.1 开启Docker服务的2376端口

2.1.1 编辑配置文件

docker jenkins不执行sh脚本_Jenkins_19

2.1.2 配置2376的tcp端口

docker jenkins不执行sh脚本_docker_20

2.1.3 重启和加载Docker服务

docker jenkins不执行sh脚本_docker_21

2.2 配置Docker服务

docker jenkins不执行sh脚本_docker_22

3、jenkins配置自动部署项目

3.1 配置“构建环境”--添加“build/publish docker image”

docker jenkins不执行sh脚本_Docker_23

3.2 配置Docker服务打包镜像

docker jenkins不执行sh脚本_docker_24

3.3 配置SSH插件

3.3.1 安装SSH插件

docker jenkins不执行sh脚本_jenkins_25

3.3.2 配置SSH登录

docker jenkins不执行sh脚本_jenkins_26

选择上面高级勾选并设置密码

docker jenkins不执行sh脚本_运维_27

3.3.3 使用配置的SSH插件

docker jenkins不执行sh脚本_Jenkins_28

3.3.4 添加执行shell脚本

docker jenkins不执行sh脚本_Jenkins_29

3.4 保存后构建项目

docker jenkins不执行sh脚本_运维_30

3.5 直接访问项目即可实现自动部署

查看223服务器上面的Docker运行容器

docker jenkins不执行sh脚本_docker_31

访问项目测试

docker jenkins不执行sh脚本_jenkins_32