jenkins自动化部署搭建。jenkins+docker+maven+git+springboot

  • Post author:
  • Post category:其他


这两天在学jenkins。在网上找了一大堆资料。从一脸懵逼到现在的自动化部署。说来都是泪啊。



jenkins

:

一个可以自动化部署的软件。平时我们程序员都是。撸码-测试-打包-上传-部署。这一循环。而jenkins的功能就是为了让我们程序员能够安心撸码的,其他的事情交给jenkins去做。

jenkins的安装。jinkins可以安装在自己的客户端,也可以安装在服务器。一般推荐安装在服务器。而考虑到环境和易维护的因素。我打算把jenkins安装在docker里。

服务器运行:docker pull jenkins   就能自动帮你下载jenkins镜像。由于docker的官方Dockerfile文件里,jenkins的uid(用户)为1000 即www用户。所以我们要是Dockefile来创建的话,也要加上这一点,不然会报权限错误。

起初我也是用Dockerfile来创建jenkins镜像,因为jenkins需要用到jdk,git,maven。而git,jdk在我们pull镜像的时候,他自动安装了。但是maven没有。起初我是想在容器里安装的。但是我们安装容器后自动是jenkins用户,没有权限,又不知道root密码。所以只能放弃,用Dockerfile试试。但是Dkerfile也是很麻烦。在From centos 7的前提下,还要RUN wget ..下载安装jdk什么的,还要ENV配置环境变量。所以就换另外一种方法

由于我们需要maven,所以我们先在我们的服务器上先下载好maven :


wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz



由于linux一切皆文件。所以我们解压他就安装好了:

tar -xvf apache-maven-3.3.9-bin.tar.gz

接下来是重要的一步。因为我们启动jenkins容器了,之前说过。我们的jenkins容器需要uid为1000的用户来运行。所以我们创建一个jenkins目录,把他额属性设为1000,然后再挂载到容器里,这样容器的属性也就变成了我们所需要的1000了。


mkdir jenkins


chown -R 1000:1000 jenkins


第一步:

创建容器:


docker run -d -p 8088:8080 -p 50000:50000 –name jenkins  –privileged=true -v $PWD/jenkins:/var/jenkins_home -v $PWD/apache-maven-3.3.9:/apache-maven-3.3.9 -e MAVEN_HOME=/apache-maven-3.3.9 -e PATH=/apache-maven-3.3.9/bin:${PATH}  jenkins


(后来不知道为什么,这种方法不行了,所以还是用DockerfileZ)




–privileged=true



在CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权。至于selinux可以去看《鸟哥的私房菜》 这还是我们当初的课本,巨厚。。。用setenforce 0就可以把他暂时关闭。虽然他很强大,但是因为和很多服务都冲突了。所以很多人都选择把他关掉。



$PWD:

当前目录下



-v

:目录



-e

:设置环境变量

这样我们的容器就创建成功了。

登录我们的ip地址:8088 。就可以看到jenkins的登录页面了。初始密码放在容器内的

/var/jenkins_home/secrets/initialAdminPassword

里。


第二步:

登录成功后,我们下载一些插件。

系统管理-管理插件

搜索然后直接安装

Git plugin , Maven Integration plugin ,SSH plugin




第三步:

然后,

系统管理-Global Tool Configuration

设置我们的JDK 和Maven (不同自动安装,因为我们之前已经挂载进去容器里了)。 两个都随便起个名字。path就填容器里的路径。如果不知道的话就whereis …  查找


第四步:

接下来,

系统管理-系统设置

找到 SSH remote hosts 配置好自己的信息。在Credentials里添加自己的用户名和密码。可以Check connection试下成不成功


第五步:

终于到这一步了。那就是新建一个项目。 在

新建那里 选择 构建一个maven项目

进去之后。 在

源码管理

里选择Git 填好url  如果是ssh的形式的话,就要在自己的容器里 ssh-keygen -t rsa -C生成公钥,再配置

接下来可以选择

构建触发器

。我选的是 poll SCM 定时更新 H/2* * * * 两分钟更新一次 也可以选在Build periodically 定时创建

其他不选。来到

Build



Goals and options

里填上

clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true

因为我的mysql和redis都在自己的容器里。所以需要跳过测试运行



Post Steps

里 选择

Run only if build succeeds


Add post-build step

里选

Execute shell script on remote host using ssh

。在我们的ssh里填写脚本


docker stop test

docker rm test

docker rmi test

cd /usr/local/docker/jenkins/jenkins/workspace/test2

cp Dockerfile target/

cd target/

docker build -t test .


docker run -p 8090:8080 –name test –link mysql:mysql –link redis:redis -d test

这是我自己的脚本。点击保存就行了。


第六步:

如果没有设置定时的话。进去项目中 点击立即构建就可以看到我们在build了。有设置定时的话,当我们的代码push到git的master分支后,如果有改变的话,就会自动构建。

可以在里面点击

Console Output

查看输出

最后就可以在服务器里看到一个新的容器了。



版权声明:本文为weixin_39797865原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。