DevOps 构建 CI/CD 流水线 - Jenkins - Maven

4 篇文章 0 订阅
1 篇文章 0 订阅

maven

  • jenkins的工作:
    • 拉取代码
    • 编译java源代码,依托于maven
    • 编写成docker可运行的镜像并提交到私有仓库harbor

交付maven

  1. 获取jenkins内jdk版本

    [root@hdss7-21 ~]# kubectl exec -it jenkins-54b8469cf9-6lnd2 -n infra -- /bin/bash
    root@jenkins-54b8469cf9-6lnd2:/# java -version
    openjdk version "1.8.0_232"
    OpenJDK Runtime Environment (build 1.8.0_232-b09)
    OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
    
  2. 下载镜像 https://archive.apache.org/dist/maven/maven-3/创建目录并解压,目录的8u232是jdk的版本,目录名称影响流水线脚本

    • /data/nfs-volume/jenkins_home 是挂在到容器里的目录,所以操作这个目录就相当于操作镜像里的目录
    [root@hdss7-200 ~]# cd /opt/src/
    [root@hdss7-200 src]# ls
    apache-maven-3.6.1-bin.tar.gz        harbor-offline-installer-v1.8.5.tgz
    harbor-offline-installer-v1.8.3.tgz  harbor-offline-installer-v1.8.5.tgz.1
    [root@hdss7-200 src]# mkdir -p /data/nfs-volume/jenkins_home/maven-3.6.1-8u232
    [root@hdss7-200 src]# tar -xvf apache-maven-3.6.1-bin.tar.gz -C /data/nfs-volume/jenkins_home/maven-3.6.1-8u232
    [root@hdss7-200 src]# cd /data/nfs-volume/jenkins_home/maven-3.6.1-8u232
    [root@hdss7-200 maven-3.6.1-8u232]# ls
    apache-maven-3.6.1
    [root@hdss7-200 maven-3.6.1-8u232]# cd apache-maven-3.6.1/
    [root@hdss7-200 apache-maven-3.6.1]# mv * ../
    [root@hdss7-200 apache-maven-3.6.1]# cd ..
    [root@hdss7-200 maven-3.6.1-8u232]# rm -rf apache-maven-3.6.1/
    [root@hdss7-200 maven-3.6.1-8u232]# ls
    bin  boot  conf  lib  LICENSE  NOTICE  README.txt
    
  3. 初始化maven

    [root@hdss7-200 maven-3.6.1-8u232]# vim conf/settings.xml
    ... ...
        <mirror>
          <id>nexus-aliyun</id>
          <mirrorOf>*</mirrorOf>
          <name>Nexus aliyun</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public</url>
          <id>mirrorId</id>
          <mirrorOf>repositoryId</mirrorOf>
          <name>Human Readable Name for this Mirror.</name>
          <url>http://my.repository.com/repo/path</url>
        </mirror>
        -->
      </mirrors>
    ... ...
    
    • maven也可以选择使用哪个版本的jdk

      [root@hdss7-200 maven-3.6.1-8u232]# vim bin/mvn
      ... ...
      #   JAVA_HOME       Must point at your Java Development Kit installation.
      

交付dubbo底包镜像

  1. 底包即满足java运行环境的基础镜像,可以通过公网下载

    [root@hdss7-200 ~]# docker pull docker.io/stanleyws/jre8:8u112
    [root@hdss7-200 ~]# docker tag fa3a085d6ef1 harbor.od.com/public/jre:8u112
    [root@hdss7-200 ~]# docker push harbor.od.com/public/jre:8u112
    
  2. 制作底包dockerfile

    [root@hdss7-200 ~]# cd /data/dockerfile/
    [root@hdss7-200 dockerfile]# mkdir jre8 ; cd jre8
    [root@hdss7-200 jre8]# vi Dockerfile
    FROM harbor.od.com/public/jre:8u112
    RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\
        echo 'Asia/Shanghai' >/etc/timezone
    ADD config.yml /opt/prom/config.yml                               # 监控jvm
    ADD jmx_javaagent-0.3.1.jar /opt/prom/                            # agent
    WORKDIR /opt/project_dir
    ADD entrypoint.sh /entrypoint.sh
    CMD ["/entrypoint.sh"]                                            # pid为1的进程
    [root@hdss7-200 jre8]# vim config.yml
    ---
    rules:
      - pattern: '.*'
    [root@hdss7-200 jre8]# wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar -O jmx_javaagent-0.3.1.jar
    [root@hdss7-200 jre8]# vim entrypoint.sh
    #!/bin/sh
    M_OPTS="-Duser.timezone=Asia/Shanghai -javaagent:/opt/prom/jmx_javaagent-0.3.1.jar=$(hostname -i):${M_PORT:-"12346"}:/opt/prom/config.yml"
    C_OPTS=${C_OPTS}
    JAR_BALL=${JAR_BALL}                                            # 由资源配置清单提供
    exec java -jar ${M_OPTS} ${C_OPTS} ${JAR_BALL}
    [root@hdss7-200 jre8]# chmod +x entrypoint.sh
    
  3. 在Harbor上新建一个公开仓库base,biud镜像并上传到该仓库下

    20201102172759

    [root@hdss7-200 jre8]# docker build . -t harbor.od.com/base/jre8:8u112
    [root@hdss7-200 jre8]# docker push harbor.od.com/base/jre8:8u112
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值