环境

  • centos 7
  • Java 1.8
  • maven 3.6.3
  • Jenkins 2.46.3

Jenkins相干依赖环境

Java环境

尽管咱们是采纳docker的形式装置Jenkins,所有的依赖镜像都曾经打包好了。然而咱们在后续应用Jenkins的过程中,会采纳Jenkins主机上的Java运行环境,所以咱们还是要装置一下java JDK8、并且配置一下环境变量。

  1. 下载Java Jdk tar.gz包
    进入https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html(须要登录oracle账号),抉择jdk-8u202-linux-x64.tar.gz点击下载即可。
  2. jdk-8u202-linux-x64.tar.gz上传至jenkins同台服务器,并解压到/usr/local/目录下,重命名为java
  3. 配置Java环境变量,vim /etc/profile,在/etc/profile文件最初追加一下内容。

    # Javaexport JAVA_HOME=/usr/local/javaexport CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$JAVA_HOME/bin:$PATH

    其中JAVA_HOME=后的/usr/local/java更换为本人解压的jdk目录门路。

  4. 从新加载环境变量,source /etc/profile
  5. 验证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环境

  1. 进入地址https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/,下载maven3.6.3压缩包apache-maven-3.6.3-bin.tar.gz
  2. 上传apache-maven-3.6.3-bin.tar.gz到jenkins同服务器,并解压到/usr/local/目录下。
  3. 配置Maven环境变量,批改/etc/profile文件,追加以下内容到文件最初。

    # MavenMAVEN_HOME=/usr/local/apache-maven-3.6.3export PATH=${MAVEN_HOME}/bin:${PATH}

    其中MAVEN_HOME=后的/usr/local/apache-maven-3.6.3更换为本人解压的maven目录门路。

  4. 从新加载环境变量,source /etc/profile
  5. 验证Maven环境是否筹备实现,mvn -v,如果呈现相似以下内容,即示意胜利。

    Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)Maven home: /usr/local/apache-maven-3.6.3Java version: 1.8.0_202, vendor: Oracle Corporation, runtime: /usr/local/java/jreDefault locale: zh_CN, platform encoding: UTF-8OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"
  6. 配置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>也是同理。

部署docker

  1. 应用国内 daocloud 一键装置命令:

    curl -sSL https://get.daocloud.io/docker | sh

    可能会呈现一次装置不胜利的状况,多试几次。

  2. 执行以下命令,启动docker服务器和设置docker自启动

    systemctl start dockersystemctl enable docker
  3. 测试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

  1. 备份一下/usr/local/java目录和/usr/local/apache-maven-3.6.3目录外面的

    cp -r /usr/local/java /usr/local/java_bakcp -r /usr/local/apache-maven-3.6.3 /usr/local/apache-maven-3.6.3_bak
  2. 执行以下命令即可:

    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 # 抉择镜像
  3. 执行命令docker ps,咱们会发现jenkins并没有被启动起来。这是因为咱们方才挂载的目录,jenkins容器并没有拜访启动。所以,咱们须要给挂载的目录给予权限。

    chown -R 1000:1000 /usr/local/javachown -R 1000:1000 /usr/local/apache-maven-3.6.3chown -R 1000:1000 /usr/local/jenkinschown -R 1000:1000 /etc/localtime
  4. 查看jenkins是否启动胜利,执行命令docker ps,查看是否有jenkins
  5. 在浏览器拜访http://主机ip:8001,如果呈现上面页面示意胜利