docker
下载
docker pull jenkins/jenkins:2.263.1-lts-centos7
启动
docker run --name dev_jenkins --user=root -p 8090:8080 -p 50000:50000 -v /usr/bin/mv:/usr/bin/mv -v /java/jdk1.8/bin:/usr/local/java/jdk1.8.0_271/bin -v /maven/maven-3.6.3:/usr/local/maven3.6 -v /mnt/jenkins/data:/var/jenkins_home -d jenkins/jenkins:2.263.1-lts-centos7
doker查看密码
进入容器内部
docker exec -it be32c124095b /bin/bash
查看文件
cd /var/jenkins_home/secrets
查看密码
cat initialAdminPassword
脚本示例
#!/bin/sh
echo "开始执行shell脚本"
# 在jenkins环境中一定要加这句话,否则这个脚本进程最后会被杀死
export BUILD_ID=dontKillMe
# 指定最后编译好的jar的存放位置
JAR_PATH=/www
# 如果路径不存在,就创建路径
[ ! -e $JAR_PATH ] && mkdir -p $JAR_PATH
# 指定jenkins中存放编译好的jar的位置
JENKINS_JAR_PATH=/root/.jenkins/workspace/test/target
# 如果路径不存在,就创建路径
[ ! -e $JENKINS_JAR_PATH ] && mkdir -p $JENKINS_JAR_PATH
# 指定jenkins中存放编译好的jar的名称(这个jar的名字和pom文件配置有关)
JENKINS_JAR_NAME=app.jar
# 获取该项目的进程号,用于重新部署项目前杀死进程
process_id=$(ps -ef | grep websocket | awk '{print $2}')
# 如果该项目正在运行,就杀死项目进程
echo $process_id
if [[ ! -z "$process_id" ]]
then
echo "停止正在进行服务"
kill -9 $process_id
echo "开始启动服务"
else
echo "服务未启动"
fi
# 进入Jenkins中编译好的jar的位置
cd ${JENKINS_JAR_PATH}
# 将Jenkins中编译好的jar复制到最终存放项目jar的位置
cp $JENKINS_JAR_PATH/$JENKINS_JAR_NAME $JAR_PATH
# 进入到存放项目jar的位置
cd ${JAR_PATH}
# 后台启动项目,并且将控制台日志输出到nohup.out中
nohup java -jar ${JENKINS_JAR_NAME} >websocket.log &
echo "shell脚本执行完毕"