Jenkin实战部署Java项目
虽然我们是采用docker的方式安装Jenkins,所有的依赖镜像都已经打包好了。但是我们在后续使用Jenkins的过程中,会采用Jenkins主机上的Java运行环境,所以我们还是要安装一下java JDK8、并且配置一下环境变量。
下载Java Jdk tar.gz包进入
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
(需要登录oracle账号),选择jdk-8u202-linux-x64.tar.gz
点击下载即可。将
jdk-8u202-linux-x64.tar.gz
上传至jenkins同台服务器,并解压到/usr/local/
目录下,重命名为java
。配置Java环境变量,vim /etc/profile
,在/etc/profile
文件最后追加一下内容。
# Java
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
其中JAVA_HOME=
后的/usr/local/java
更换为自己解压的jdk目录路径。
重新加载环境变量,
source /etc/profile
验证Java环境是否准备完成,java -version
,如果出现类似以下内容,即表示成功。
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
maven环境进入地址https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/
,下载maven3.6.3压缩包apache-maven-3.6.3-bin.tar.gz
上传
apache-maven-3.6.3-bin.tar.gz
到jenkins同服务器,并解压到/usr/local/
目录下。配置Maven环境变量,修改/etc/profile
文件,追加以下内容到文件最后。
# Maven
MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=${MAVEN_HOME}/bin:${PATH}
其中MAVEN_HOME=
后的/usr/local/apache-maven-3.6.3
更换为自己解压的maven目录路径。
source /etc/profile
。验证Maven环境是否准备完成,mvn -v
,如果出现类似以下内容,即表示成功。
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/apache-maven-3.6.3
Java version: 1.8.0_202, vendor: Oracle Corporation, runtime: /usr/local/java/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"
配置maven国内镜像、指定jdk编译版本。进入maven根目录/conf
,编辑文件settings.xml
。增加以下内容:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
注意要加到对应的位置,例如<mirror>
相关的配置就搜索<mirrors>
,加到<mirrors>
中,而<profile>
也是同理。
使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
可能会出现一次安装不成功的情况,多试几次。
执行以下命令,启动docker服务器和设置docker自启动
systemctl start docker
systemctl enable docker
测试docker是否安装成功,执行命令docker pull hello-world
,如果看到有镜像被拉取,这说明docker安装成功部署jenkins(基于docker)我们可以自己在本机上部署jenkins,也可以使用docker进行部署,这次我们选择docker来部署。
Jenkins的版本选择Jenkins >= 1.520(LTS 为 1.531.1)需要 Java 6,因此 Maven 作业必须使用 JDK >= 6 启动。Jenkins >= 1.612(LTS 为 1.625.1)需要 Java 7,因此 Maven 作业必须使用 JDK >= 7 启动。Jenkins >= 2.54(LTS 为 2.60.1)需要 Java 8,因此 Maven 作业必须使用 JDK >= 8 启动。很快(2022 年 7 月至 9 月时间框架)Jenkins 将需要 Java 11,因此必须使用 JDK >= 11 启动 Maven 作业。一般我们企业开发都是采用JDK8,所以我们在选择Jenkins版本的时候,切勿直接使用最新last版本。最新的版本也要在Jenkins 2022年7月之前发行的版本。本次教程,我们Jenkins采用2.46.3版本。开始在docker容器中部署Jenkins
备份一下/usr/local/java
目录和/usr/local/apache-maven-3.6.3
目录里面的
cp -r /usr/local/java /usr/local/java_bak
cp -r /usr/local/apache-maven-3.6.3 /usr/local/apache-maven-3.6.3_bak
执行以下命令即可:
docker run -d -p 8001:8080 -p 8002:50000 -v /usr/local/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /etc/local/java:/etc/local/java -v /usr/local/apache-maven-3.6.3:/usr/local/apache-maven-3.6.3 --name jenkins jenkins:2.46.3
其中要注意的是:
挂载/usr/local/jenkinsHome
是jenkins的主目录挂载/etc/localtime
目录是为了容器内的jenkins与主机时间一致;挂载/etc/local/java
是同步主机的java到容器中的jenkins(不然后面会有坑)挂载/usr/local/apache-maven-3.6.3
是同步主机的maven到容器中的jenkins(不然后面会有坑)下面是命令的解释:
docker run -d
-p 8001:8080\ # 将容器中的端口8080,挂载到主机端口8001
-p 8002:50000\ # 将容器中的端口50000,挂载到主机端口8002
-v /usr/local/jenkins:/var/jenkins_home\ # 将容器中的目录/var/jenkins_home,挂载到主机目录/usr/local/jenkins
-v /etc/localtime:/etc/localtime\ # 将容器中的目录/etc/localtime,挂载到主机目录/etc/localtime
-v /etc/local/java:/etc/local/java\ # 将容器中的目录/etc/local/java,挂载到主机目录/etc/local/java
-v /usr/local/apache-maven-3.6.3:/usr/local/apache-maven-3.6.3\ # 将容器中的目录/usr/local/apache-maven-3.6.3,挂载到主机目录/usr/local/apache-maven-3.6.3
--name jenkins\ # 给容器命名为jenkins
jenkins:2.46.3 # 选择镜像
执行命令docker ps
,我们会发现jenkins
并没有被启动起来。这是因为我们刚才挂载的目录,jenkins容器并没有访问启动。所以,我们需要给挂载的目录给予权限。
chown -R 1000:1000 /usr/local/java
chown -R 1000:1000 /usr/local/apache-maven-3.6.3
chown -R 1000:1000 /usr/local/jenkins
chown -R 1000:1000 /etc/localtime
查看jenkins是否启动成功,执行命令docker ps
,查看是否有jenkins
在浏览器访问http://主机ip:8001
,如果出现下面页面表示成功 版权声明
本文仅代表作者观点,不代表博信信息网立场。