赞
踩
本文主要记录如何通过docker安装jenkins,并且通过jenkins部署项目
前置准备:jenkins所在宿主服务器首先安装好jdk、maven
注意:选择适合自己的JDK,并且注意安装JDK的系统
地址:https://www.oracle.com/java/technologies/downloads/#java8
1.1、切换用户:su root
su root
1.2、查看自带JDK命令:rpm -qa | grep jdk
rpm -qa | grep jdk
1.3、卸载自带JDK命令:rpm -e --nodeps 要卸载的JDK
rpm -e --nodeps 要卸载的JDK
创建安装目录:mkdir java
cd /usr/local
mkdir java
cd java
3、把压缩包解压到当前目录(我们创建的java目录下),解压命令:tar -zxvf 所要解压的文件名
tar -zxvf 所要解压的文件名
4、编辑profile文件:vim /etc/profile
把光标移到最后一行,键盘按 i,进入编辑模式,然后插入以下内容:(注意自己所建java的路径、jdk的名称)
JAVA_HOME=/usr/local/java/jdk1.8.0_381
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
然后按ESC退出编辑模式,‘shift + :’,输入wq,回车,完成保存并退出
5、让编辑的文件生效执行:source /etc/profile
6、最后验证JDK安装是否成功:java -version
[root@aliyun ~]# cd /usr/local/java
[root@aliyun java]# ls
jdk-8u381-linux-x64.tar.gz
[root@aliyun java]# tar -zxvf jdk-8u381-linux-x64.tar.gz
[root@aliyun java]# vim /etc/profile
[root@aliyun java]# source /etc/profile
[root@aliyun java]# java -version
java version "1.8.0_381"
Java(TM) SE Runtime Environment (build 1.8.0_381-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.381-b09, mixed mode)
出现上述显示,则完毕!
打开Maven官网:Maven – Download Apache Maven
我选择是3.9.3版本(选择适合自己的版本),找到后缀名是.tar.gz的文件下载,如图所示:
1.1、创建安装目录:mkdir maven
cd /usr/local
mkdir maven
cd maven
1.2、把压缩包解压到当前目录(我们创建的maven目录下),解压命令:tar -zxvf 所要解压的文件名
tar -zxvf 所要解压的文件名
1.3、解压完毕以后,新建一个repository仓库,用于存放Maven下载下来的jar包
mkdir repository
编辑settings.xml文件
vi apache-maven-3.9.3/conf/settings.xml
- 1
按i键进入编辑模式
1.设置Maven仓库,就是我刚才新建的文件夹
<localRepository>/maven/repository</localRepository>
2.配置为阿里云镜像地址
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
按Esc键退出编辑模式,输入:wq保存并退出vim编辑器
编辑profile文件
vim /etc/profile
- 1
按i键进入编辑模式
添加如下环境变量
export MAVEN_HOME=/usr/local/maven/apache-maven-3.9.3 export PATH=$PATH:$MAVEN_HOME/bin
- 1
- 2
按Esc键退出编辑模式,输入:wq保存并退出vim编辑器
运行以下命令使profile文件生效
source /etc/profile
- 1
检查环境配置是否成功
mvn -v
- 1
大功告成!
#查看你需要安装的版本
docker search jenkins
#安装镜像包
docker pull jenkins/jenkins #默认安装最新版本
#安装指定版本 指令入下
docker pull jenkins/jenkins:xx(版本号)
#查看是否安装成功(查看镜像包)
docker images
docker pull jenkins/jenkins:latest
#启动命令: docker run -u root -d \ -p 10240:8080 -p 10241:50000 \ -v /var/jenkins_home/workspace/:/var/jenkins_home/workspace/ \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ -v /usr/local/java/jdk1.8.0_381:/usr/local/java \ -v /usr/local/maven/apache-maven-3.9.3:/usr/local/maven \ -e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai" \ --name myjenkins jenkins/jenkins #解释: -d :后台运行 -p:10240:8080 镜像8080 :端口映射到宿主机 10240端口 -p:10241:50000 镜像50000 :端口映射到宿主机 10241端口 -v:/var/jenkins_home/workspace/:/var/jenkins_home/workspace/ /var/jenkins_home/workspace/ 宿主机的Jenkins目录挂载路径 jenkins /var/jenkins_home/workspace/ 镜像服务器中jenkins的工作目录 -v /usr/bin/docker:/usr/bin/docker : 挂载docker -v /usr/local/java/jdk1.8.0_381:/usr/local/java : 挂载映射宿主机jdk -v /usr/local/maven/apache-maven-3.9.3:/usr/local/maven : 挂载映射宿主机maven -e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai" \ :同步时间 --name myjenkins(自定义容器名称) jenkins/jenkins(需要映射容器名称)
如果执行命令发现jenkins没有启动成功,很大概率是因为挂载的目录没有权限,需要授权
chown -R 1000:1000 /root/apply/jenkins_mount
chown -R 1000:1000 /root/apply/apache-maven-3.8.4
chown -R 1000:1000 /usr/local/jenkins
chown -R 1000:1000 /etc/localtime
jenkins容器启动以后,咱们就需要到阿里云或者是腾讯云中,将端口为10240打开
浏览器访问:你的服务器ip:10240。不出意外,你就能访问到jenkins了。
docker exec -it myjenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
选择安装推荐插件
2.3版本安装插件很多失败,我换成了2.415版本
安装完成后创建管理员用户
4.1、安装三个插件: Publish Over SSH和Maven Integration和GitLab ,点击: 系统管理->插件管理 -> 可选插件中进行输入安装。如下图所示:
4.2、安装好上一步中的几个插件之后,接下来需要在jenkins中配置一下Git和SSH: 点击:系统管理 -> 系统配置 -> 找到Git和SSH
4.3、配置JDK和Maven: 点击:系统管理 -> 全局工具配置 -> 找到JDK和Maven
Jenkins中构建项目的类型有很多,常用的有以下三种:
实际上每种类型的构建都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别,在实际开发中可以根据自己的需求和习惯来选择。从灵活度上来说,流水线类型是最高的。
简单来说,Pipeline就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。
Pipeline支持两种语法:声明式(Declarative)和脚本式(Scripted Pipeline)语法。
注意:需要安装Pipeline插件
这里,我们编写一个简单声明式的Pipeline,来感受一下整个构建过程:
pipeline { agent any stages { stage('拉取代码') { steps { echo '拉取代码' } } stage('编译构建') { steps { echo '编译构建' } } stage('项目部署') { steps { echo '项目部署' } } } }
开始构建,并输出构建结果
编写一个简单的脚本式Pipeline:
node {
def mvnHome
stage('Preparation') {
echo '拉取代码'
}
stage('Build') {
echo '编译构建'
}
stage('Results') {
echo '项目部署'
}
}
开始构建,并输出构建结果
如果不会写流水线脚本,选择流水线语法可以自动生成Pipeline语法
点击【流水线语法】进入新页面
选择想要生成的流水线脚本,填写对应配置然后生成
Git拉取代码流水线语句:
连接服务器执行语句:
最终的流水线脚本:
pipeline { agent any tools { maven "maven3.9.3" jdk "jdk1.8" } stages { stage('拉取代码') { steps { git credentialsId: '4ef30b0b-a335-4a6e-bfbe-151d59676f44', url: 'http://42.236.74.152:8050/fumingxing/cmcc-tenant.git' } } stage('编译打包') { steps { sh '''echo "开始构建" mvn clean install -Dmaven.test.skip=true echo "构建结束"''' } } stage("服务传输、启动"){ steps { sshPublisher(publishers: [sshPublisherDesc(configName: 'mySSH', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''#第一步是进入到服务器中生成好的jar包的目录下 cd /var/jenkins_home/workspace/mytest/ruoyi-admin/target #第二步是根据jar包的名字获取运行的pid,并且将该进程杀死 ps -ef | grep ruoyi-admin.jar | grep -v grep | awk \'{printf $2}\' | xargs kill -9 #最后一步就是将这个jar后台启动了,并且将日志输出到out.log中。 nohup java -Xms128m -Xmx128m -Xss1024k -XX:MaxNewSize=64M -XX:MaxPermSize=64M -jar ruoyi-admin.jar >out.log 2>&1 &''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: 'ruoyi-admin/target', sourceFiles: 'ruoyi-admin/target/ruoyi-admin.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)]) } } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。