创建jenkins目录
mkdir ~/develop/env/jenkins_home
修改目录的所有者,以便于 Jenkins 容器能够操作该目录
sudo chown -R tse:staff ~/develop/env/jenkins_home
创建容器并挂载
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /Users/tse/develop/env/jenkins_home:/var/jenkins_home jenkins/jenkins
访问localhost:8080,完成初始化,需要从下面命令获取密码
cat ~/develop/env/jenkins_home/secrets/initialAdminPassword
安装插件
Jenkins 启动成功之后,接下来我们安装三个必要的插件:
- Maven Integration:Maven 构建工具
- Publish Over SSH:整个工具,将来把 Jenkins 打包好的 jar 上传到应用服务器上。
- Github:协助使用 Github 仓库。
docker将宿主maven目录迁移到jenkins下
docker cp /Users/tse/develop/env/maven-3.9.1 jenkins:/opt/
配置环境
全局工具配置
github配置access token
系统配置
github服务器
凭据类型选择secret text并填入刚刚在github生成的access token
Publish over SSH (写入远程服务器信息)
Remote Directory填写目标服务器要进去传输文件的目录,流程是进入服务器——》cd到此目录——》使用sftp进行文件传输。
新建任务构建一个maven项目
勾选GitHub 项目配置填入项目URL
源码管理
构建环境
Build
Post Steps
这里 Source files选择项目下打包完成的文件,Remove prefix删除无需传输的文件夹,Remote directory填入远程目录,没有就会自动创建, Exec command执行也可以用shell脚本如下
sh /目录/deploy.sh
并创建deploy.sh文件
export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH
JAR_PATH=/root/data
JARFILE=*-0.0.1-SNAPSHOT.jar
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
java -jar $JAR_PATH/$JARFILE > out.log &
if [ $? = 0 ];then
sleep 30
tail -n 50 out.log
fi
接下来保存并点击立即构建
Enjoy IT!