Linux Docker 中安装 Jenkins 并实现 Maven 工程自动化部署

484 阅读2分钟

这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战

1:在Linux命令行执行以下命令启动Jenkins,该命令如果发现本地没有Jenkins镜像会先去拉取镜像。注意,此教程基于Linux已经安装完Docker。 docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean 在这里插入图片描述 2:关闭防火墙 systemctl stop firewalld.service(如果这此行执行后报错Failed to stop firewalld.service: Unit firewalld.service not loaded.,先执行systemctl mask firewalld再执行systemctl stop firewalld.service)

3: 访问http://jenkins所在主机ip:8080 在这里插入图片描述

3:解锁Jenkins,使用以下命令进入Jenkins容器,然后再执行第二行命令获取秘钥 docker exec -it 容器ID /bin/bash cat /var/jenkins_home/secrets/initialAdminPassword

4:输入秘钥后,出现如下界面(推荐选择第一种),选择后等待插件安装后,创建用户就好了。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 5:配置Jenkins JDK和Maven Jenkins容器已经下载好了jdk,通过java -version可以查看。通过echo $JAVA_HOME可以查看jdk安装目录。 Maven我使用的是3.6.3版本的。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 6:安装Maven插件,在Manage Jenkins - Manage Plugins - 可选插件中安装Maven Integration,安装后再新建任务就出现了Maven项目可选项。 在这里插入图片描述 在这里插入图片描述 7:将代码push到码云(可根据自己选择不同的代码库例如Git、GitHub等) 7.1首先在码云上新建仓库 在这里插入图片描述 7.2:将本地代码push到码云,右键工程Team - share project,出现下面界面按顺序点击。然后再进行commit和push操作,URL填从码云复制的URL。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 第一次提交会出现以下报错,因为是没有选择提交分支。 在这里插入图片描述 解决方案:右键工程Team - Remote - Push,再按如下操作即可将代码push到码云。 在这里插入图片描述 8:Jenkins配置码云 8.1:新建maven工程 在这里插入图片描述 8.2:添加码云工程代码连接,注意,credentials里面的用户名和密码是码云的账号密码。Build中的命令根据工程来,此处本测试工程pom文件是maven最初始化的,故一个clean package命令够了。 在这里插入图片描述 在这里插入图片描述 8.3:Post Steps 选择执行shell。此步骤是在打包完后进行的操作,即启动工程。 在这里插入图片描述

!/bin/bash

#服务名称 SERVER_NAME=jenkins-maven-server #工程所在路径(根据自己情况进行调整) APP_HOME=pwd #maven打包后的jar包名 JAR_NAME=jenkins-maven-server-0.0.1-SNAPSHOT.jar #jar包的目录 JAR_PATH=${APP_HOME}/target

#杀死之前的进程 PID_FILE="APPHOME"/"{APP_HOME}"/"{SERVER_NAME}".pid if [ -f "PIDFILE"];thenPID=cat"{PID_FILE}" ];then PID=`cat "PID_FILE"` && kill -9 PID && echo "kill process "{PID}" finished!" fi

cd $JAR_PATH

#修改文件权限 chmod 755 $JAR_NAME

#启动服务 BUILD_ID=dontKillMe nohup java -jar $JAR_NAME &

#将新进程ID写到文件中 JAVA_PID=!echo"! echo "{JAVA_PID}" > "${PID_FILE}"

8.4:保存好工程配置后,点击立即构建,即可进行代码拉取、构建打包、启动服务。 在这里插入图片描述 8.5:最后在浏览器访问你的工程接口就可以了。 在这里插入图片描述

注意:在启动容器的时候需要将你工程的端口加上,这样外界才能访问你的工程。例如这里的是10858。 docker run -p 8080:8080 -p 10858:10858 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean 在这里插入图片描述

我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章喔!

本次分享到此结束啦~~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,您的