配置 Jenkins
配置 JDK
使用容器方式安装的 Jenkins,容器内已经默认安装好 JDK 了,如下所示:
bash-5.1$ java -version
openjdk version "11.0.14.1" 2022-02-08
OpenJDK Runtime Environment Temurin-11.0.14.1+1 (build 11.0.14.1+1)
OpenJDK 64-Bit Server VM Temurin-11.0.14.1+1 (build 11.0.14.1+1, mixed mode)
bash-5.1$ echo $JAVA_HOME
/opt/java/openjdk
bash-5.1$
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
将 JDK 安装的路径配置到 Jenkins 全局配置中,如下所示:
配置 Maven
此演示安装 Maven 3.6.3 版本。
安装 Maven 插件
如果我们开发的项目是 Maven 项目的话,就需要安装 Maven 插件,安装后重启 Jenkins。
在浏览器输入地址http://192.168.164.134:8099/restart
重启 Jenkins,然后就可以在新建任务看到 Maven 项目选项了。
配置码云代码仓库实现自动部署
在 Jenkins 上新建一个 Maven 项目。
配置码云上的项目地址,如下。添加凭证时需要输入码云的账号和密码。
构建命令根据自身情况进行配置,我们从码云拉取的项目是一个简单的 Maven 项目,所以配置简单命令即可。
Post Steps 选择执行 shell
。此步骤是在打包完后进行的操作,此为执行 shell 来启动工程。
一个简单的启动服务脚本如下:
#!/bin/bash
# 服务名称
SERVER_NAME=jenkins-demo
# 工程所在路径(根据自己情况进行调整)
APP_HOME=$(pwd)
# maven打包后的jar包名
JAR_NAME=jenkins-demo-0.0.1-SNAPSHOT.jar
# jar包的目录
JAR_PATH=${APP_HOME}/target
# 杀死之前的进程
PID_FILE="${APP_HOME}"/"${SERVER_NAME}".pid
if [ -f "${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 "${JAVA_PID}" > "${PID_FILE}"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
保存好工程配置后,点击立即构建,即可进行代码拉取、构建打包、启动服务。
我们可以查看构建的控制台输出日志,如下:
第一次构建 Maven 项目,因为一开始我们为 Jenkins 配置的是自动下载的 Maven 3.6.3,所以首次需要下载 Maven 安装包,导致构建速度会比较慢,从上图日志可以看出,下载的 Maven 安装包被解压到如下目录:
/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.3/conf
- 1
为加快 Maven 项目下载依赖的速度,我们可以打开setting.xml
配置文件,将仓库更改为阿里云的。
vi /var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.3/conf/settings.xml
- 1
将以下内容写入文件中mirrors
标签对中间。
alimaven
aliyun maven
https://maven.aliyun.com/nexus/content/groups/public/
central
maven-default-http-blocker
external:http:*
Pseudo repository to mirror external repositories initially using HTTP.
http://0.0.0.0/
true
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
我们的 Maven 项目会被部署到容器内的/var/jenkins_home/workspace/
目录下。并且会自动执行构建脚本,最终部署成功日志如下:
最后在容器内访问你的工程接口验证服务是否部署成功。
bash-5.1$ curl 127.0.0.1:15340/test
Hello Jenkins!
bash-5.1$
- 1
- 2
- 3
如果你需要在外部访问部署的服务接口,那么需要将你服务的端口通过容器映射到宿主机中,即可以在启动 Jenkins 容器时进行端口映射,假设部署的服务端口为15340,如下:
# -d 后台方式启动
# -p映射端口,宿主机端口:容器内端口
# -v 挂载卷,将容器Jenkins工作目录/var/jenkins_home挂载到宿主机目录/usr/local/jenkins
# -name 给容器起个别名
docker run -d -p 8099:8080 -p 50099:50000 -p 15340:15340 -v /usr/local/jenkins:/var/jenkins_home --name myjenkins jenkinsci/blueocean
- 1
- 2
- 3
- 4
- 5
配置 Jenkins
配置 JDK
使用容器方式安装的 Jenkins,容器内已经默认安装好 JDK 了,如下所示:
bash-5.1$ java -version
openjdk version "11.0.14.1" 2022-02-08
OpenJDK Runtime Environment Temurin-11.0.14.1+1 (build 11.0.14.1+1)
OpenJDK 64-Bit Server VM Temurin-11.0.14.1+1 (build 11.0.14.1+1, mixed mode)
bash-5.1$ echo $JAVA_HOME
/opt/java/openjdk
bash-5.1$
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
将 JDK 安装的路径配置到 Jenkins 全局配置中,如下所示:
配置 Maven
此演示安装 Maven 3.6.3 版本。
安装 Maven 插件
如果我们开发的项目是 Maven 项目的话,就需要安装 Maven 插件,安装后重启 Jenkins。
在浏览器输入地址http://192.168.164.134:8099/restart
重启 Jenkins,然后就可以在新建任务看到 Maven 项目选项了。
配置码云代码仓库实现自动部署
在 Jenkins 上新建一个 Maven 项目。
配置码云上的项目地址,如下。添加凭证时需要输入码云的账号和密码。
构建命令根据自身情况进行配置,我们从码云拉取的项目是一个简单的 Maven 项目,所以配置简单命令即可。
Post Steps 选择执行 shell
。此步骤是在打包完后进行的操作,此为执行 shell 来启动工程。
一个简单的启动服务脚本如下:
#!/bin/bash
# 服务名称
SERVER_NAME=jenkins-demo
# 工程所在路径(根据自己情况进行调整)
APP_HOME=$(pwd)
# maven打包后的jar包名
JAR_NAME=jenkins-demo-0.0.1-SNAPSHOT.jar
# jar包的目录
JAR_PATH=${APP_HOME}/target
# 杀死之前的进程
PID_FILE="${APP_HOME}"/"${SERVER_NAME}".pid
if [ -f "${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 "${JAVA_PID}" > "${PID_FILE}"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
保存好工程配置后,点击立即构建,即可进行代码拉取、构建打包、启动服务。
我们可以查看构建的控制台输出日志,如下:
第一次构建 Maven 项目,因为一开始我们为 Jenkins 配置的是自动下载的 Maven 3.6.3,所以首次需要下载 Maven 安装包,导致构建速度会比较慢,从上图日志可以看出,下载的 Maven 安装包被解压到如下目录:
/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.3/conf
- 1
为加快 Maven 项目下载依赖的速度,我们可以打开setting.xml
配置文件,将仓库更改为阿里云的。
vi /var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.3/conf/settings.xml
- 1
将以下内容写入文件中mirrors
标签对中间。
alimaven
aliyun maven
https://maven.aliyun.com/nexus/content/groups/public/
central
maven-default-http-blocker
external:http:*
Pseudo repository to mirror external repositories initially using HTTP.
http://0.0.0.0/
true
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
我们的 Maven 项目会被部署到容器内的/var/jenkins_home/workspace/
目录下。并且会自动执行构建脚本,最终部署成功日志如下:
最后在容器内访问你的工程接口验证服务是否部署成功。
bash-5.1$ curl 127.0.0.1:15340/test
Hello Jenkins!
bash-5.1$
- 1
- 2
- 3
如果你需要在外部访问部署的服务接口,那么需要将你服务的端口通过容器映射到宿主机中,即可以在启动 Jenkins 容器时进行端口映射,假设部署的服务端口为15340,如下:
# -d 后台方式启动
# -p映射端口,宿主机端口:容器内端口
# -v 挂载卷,将容器Jenkins工作目录/var/jenkins_home挂载到宿主机目录/usr/local/jenkins
# -name 给容器起个别名
docker run -d -p 8099:8080 -p 50099:50000 -p 15340:15340 -v /usr/local/jenkins:/var/jenkins_home --name myjenkins jenkinsci/blueocean
- 1
- 2
- 3
- 4
- 5
评论记录:
回复评论: