## 已升级为JDK11
## docker pull jenkins/jenkins:lts
## 请用这个版本,可以更新插件
docker pull jenkins/jenkins:2.344
mkdir -p /server/jenkins
建议给这个目录设置一下权限,否则可能因为没有读写权限导致后面的容器创建失败:
# 如果创建后没有启动,请判断是否为目录权限问题
chmod -R 777 /server/jenkins
由于容器内的java版本比较新,可能和开发的java版本不一致,为了避免不必要的问题,所以建议是保持java版本的一致。这样就需要在容器外面映射java的目录到容器中。
echo $JAVA_HOME
如下图:
docker run -di --name=jks -p 9080:8080 -v /server/jdk/jdk1.8.0_221:/opt/java/openjdk -v /server/jenkins:/var/jenkins_home jenkins/jenkins:2.344
其中密码通过如下方式查看:
# 进入jenkins容器
docker exec -it jks /bin/bash
# 查看密码
cat /var/jenkins_home/secrets/initialAdminPassword
docker logs jks
大概需要等待3-10分钟
注意:第一次启动的时候正在加载jenkins大概会等待3-10分钟。
在“创建管理员账号”界面,提交一直失败。查看服务器的Jenkins log发现报错:
WARNING hudson.security.csrf.CrumbFilter#doFilter: Found invalid crumb dbd2b4d3defb81578df24c5e36d6446c767aade482b9e079b43388ed05d849aa.
WARNING hudson.security.csrf.CrumbFilter#doFilter: No valid crumb was included in request for /pluginManager/installPlugins by admin. Returning 403.
google一番后发现是因为新版本Jenkins的CSRF安全校验的问题,但是其他人都是在升级Jenkins时候遇到的,并没有按照的时候就遇到这种情况。
解决方法:
找到Jenkins安装目录,一般是在 /var/lib/jenkins 目录下。
修改该目录下的config.xml配置文件:
excludeClientIPFromCrumb 的值改为 true
命令如下:
cd /server/jenkins/
vi config.xml
<crumbIssuer class="hudson.security.csrf.DefaultCrumbIssuer">
<excludeClientIPFromCrumb>true</excludeClientIPFromCrumb>
</crumbIssuer>
截图如下:
这个路径可以根据前面的配置,则无需在这里修改。如果是自动更新,需要从oracle服务下载,还得需要oracle账号,还是比较啰嗦的。
JDK的路径配置如下:
/opt/java/openjdk
maven选择指定版本自动安装即可。
找到 “系统管理“ - “安装插件” ,点击 “可选插件”,找到如下maven插件的版本
插件名称 Maven Integration
选择安装完成后重启服务
安装完Publish Over SSH插件后,需要重启Jenkins服务器,重启后,需要在系统管理-》配置-》Publish over SSH
中配置ssh的ip和配置名字,然后在构建项目的构建后操作中,再配置通过ssh上传jar包以及运行jar包。具体如下图:
这个不需要太多设置
根据需要进行配置
宿主机上的可执行脚本
#!/bin/bash
echo "server-demo-hello start"
SERVER_NAME="server-demo-hello"
source /etc/profile
cd /server/app
echo "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" |grep -v grep| awk '{print $2}'`
echo "得到进程ID:$PID"
if [ "$PID" = "" ]; then
echo "线程不存在"
else
echo "结束线程"
for id in $PID
do
kill -9 $id
echo "killed $id"
done
fi
nohup java -Dcatalina.home=/server/app -jar -Dspring.profiles.active=dev server-demo-hello-0.0.1-SNAPSHOT.jar > demo.log 2>&1 &
echo "server-demo-hello start finish"