Linux Docker 中安装 Jenkins 并实现 Maven 工程自动化部署
我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的 JavaLib」第一时间阅读最新文章喔!
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/bashcat /var/jenkins_home/secrets/initialAdminPassword
4:输入秘钥后,出现如下界面(推荐选择第一种),选择后等待插件安装后,创建用户就好了。
5:配置 Jenkins JDK 和 MavenJenkins 容器已经下载好了 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="{SERVER_NAME}".pidif [ -f "${PID_FILE}" ];thenPID=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={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
版权声明: 本文为 InfoQ 作者【陈皮的JavaLib】的原创文章。
原文链接:【http://xie.infoq.cn/article/0d4115b25badacddfae73531d】。未经作者许可,禁止转载。
评论