安装jdk可以使用命令自动安装,也可以手动安装
yum install -y java-1.8.0-openjdk-devel.x86_64
根据提示输入 y
, 返回Complate即安装成功
使用yum安装的,环境变量自动就配好了,可以使用java -version
查看
先去Oracle官网下载需要版本的jdk
目前官网下载低于jdk1.8版本,需要登陆,分享一个其他大佬分享的账号(可能已经无法使用)
账号: [email protected]
密码: LR4ever.1314
上传下载的jdk到服务器上,位置随意,我这里使用的版本是 jdk-8u202
例如上传到:/usr/local
解压
[root@localhost local]# tar -zxvf jdk-8u202-linux-x64.tar.gz
解压后的文件夹也在local下
[root@localhost /]# vim /etc/profile
在最前面添加:
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_202
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
更新环境变量
[root@localhost /]# source /etc/profile
使用java -version
检查环境变量是否生效,如下jdk安装完成
安装maven步骤和jdk差不多
官网下载maven
建议使用3.6.x版本,3.8版本可能会有各种坑
进入官网,找到archives
下载历史版本
选择3.6.3
选择binaries
下载压缩包
上传服务器
tar -zxvf apache-maven-3.6.3-bin.tar.gz
vim /etc/profile
把下面的配置,复制粘贴到最下边
export MAVEN_HOME=/usr/lib/maven/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
[root@localhost /]# source /etc/profile
使用docker search jenkins
查找可用镜像
使用docker pull jenkins/jenkins
拉取镜像,这里使用的是第二个镜像,第一个官方镜像安装插件一直提示找不到,也可能是配置问题
使用docker images
查看下载的镜像
创建挂载目录
[root@localhost /]# mkdir -p /docker/jenkins
mkdir -p
确保目录名称存在,不存在的就建一个
修改目录权限(很重要)
[root@localhost /]# chown -R 1000 /docker/jenkins
创建并运行jenkins
[root@localhost /]# docker run -itd -p 9095:8080 -p 50000:50000 --name jenkins -v /docker/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime 576fadba085d
参数解读:
-p 9095:8080 -p 50000:50000是端口映射,宿主机的端口映射到容器的端口,格式为 -p [宿主机]:[容器]
–name 给容器起一个别名
-d 是容器后台运行
-i 开始交互式会话
-t 模拟一个终端
-v /docker/jenkins:/var/jenkins_home 将宿主机的 /docker/jenkins 目录挂载到 /var/jenkins_home。这样做是为了把Jenkins文件存放到宿主机上,就算容器被删除了,新建一个新的容器内容也不会丢失。
-v /etc/localtime:/etc/localtime 意义:让容器使用和服务器同样的时间设置。
576fadba085d 是下载的镜像id,也可以是名字 jenkins/jenkins
创建完成后,可以打开浏览器输入:192.168.4.210:9095/jenkins
访问jenkins
打开浏览器访问jenkins
需要注意的是,这里显示的是jenkins_home路径,由于我设定的目录是/docker/jenkins
,故我的密码放置目录是/docker/jenkins
可直接访问宿主机的目录查看密码
[root@localhost secrets]# cat /docker/jenkins/secrets/initialAdminPassword
输入密码后选择安装推荐的插件即可
然后成功进入到jenkins中(我这里已经创建过任务)
使用docker cp
命令将宿主机的jdk和maven文件夹复制到容器中
[root@localhost /]# docker cp /usr/lib/jdk/jdk1.8.0_202/ jenkins:/jdk1.8.0_202
将/usr/lib/jdk/jdk1.8.0_202文件夹复制到容器的/jdk1.8.0_202目录中
maven同上
选择系统管理
-> 插件管理
选择可选插件,安装publish over ssh
和Maven Integration
,没有中文界面的还可以安装中文插件Localization: Chinese (Simplified)
选择系统管理
-> 系统配置
找到publish over ssh
点击新增
设置远程服务器配置
然后点击高级
,配置远程服务器密码
然后应用、保存即可
选择系统管理
-> 全局工具配置
我这里是直接将宿主机的jdk安装文件夹复制到了容器的根目录下,可以是其他目录如/usr/local/jdk_1.8.0_202
在dashboard点击新建任务
,填写名字,选择maven项目,点击确定新建
3.新增Credentials
点击添加
新增凭证,填写git账号,密码
然后Credentials选择刚刚新增的
分支按需求指定
选择Run regardless of build result
点击增加构建后操作
,选择Send build artifacts over SSH
配置ssh操作
1.创建接收jar包的目录 /usr/local/web/app
2.创建jar启动脚本start.sh
#!/bin/bash
source /etc/profile
echo "------start---------"
pid=$(ps -ef | grep -i app.jar | grep -v "grep" | awk '{print $2}')
echo "获取pid成功"+$pid
if [ -n "$pid" ]; then
kill -9 $pid
echo '解除端口占用'
fi
sleep 2s
echo "启动......"
export BUILD_ID=dontKillMe
nohup /usr/lib/jdk/jdk1.8.0_202/bin/java -jar /usr/local/web/app/app.jar > /usr/local/web/app/app.log 2>&1&
echo "脚本执行完毕"
sleep 2s
pid=`ps -ef|grep app.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
echo "部署后的pid进程 :$pid"
echo "启动成功"
else
echo "进程没有启动"
fi
配置完成后即可构建项目
回到dashboard选择配置完成的任务,点击立即构建
可在控制台输出中查看编译,启动信息
启动成功
java
、xxx.jar
、xxx.log
必须使用绝对路径,否则启动不生效