# 011-模版与变量构建

作者:Odboy (opens new window)

本站地址:https://blog.odboy.cn (opens new window)

# 首先是模板,引用上一章的 .gitlab-ci.yml 文件内容

variables:
  MAVEN_CLI_OPTS: "-Dfile.encoding=UTF-8 -s /usr/local/maven/conf/settings.xml"

stages:
  - buildJar

buildJar:
  stage: buildJar
  variables:
    projectdir: $CI_PROJECT_DIR
    projectid: $CI_PROJECT_ID
    projectname: $CI_PROJECT_NAME
    jobid: $CI_JOB_ID
    pipelineid: $CI_PIPELINE_ID
    commitid: $CI_COMMIT_SHA
    branchname: $CI_COMMIT_REF_NAME
    appname: "kenaito-sso-service"
    versioncode: "202411131900"
    envLabel: "online"
  script:
    - mvn clean package -DskipTests -pl $appname -am
    - rm -rf /home/gitlab-runner/springboot/$appname/$versioncode
    - mkdir -p /home/gitlab-runner/springboot/$appname/$versioncode
    - cp $appname/target/$appname.jar /home/gitlab-runner/springboot/$appname/$versioncode/$appname.jar
    - cp Dockerfile"_"$envLabel /home/gitlab-runner/springboot/$appname/$versioncode/
    - cd /home/gitlab-runner/springboot/$appname/$versioncode/
    - tar zcvf $appname.tar.gz $appname.jar
    - rm -f $appname.jar
    - ls -al
    - echo imageName=kenaito-register.odboy.local:15000/springboot/$appname:$envLabel"_"$versioncode
    - buildah build-using-dockerfile -f Dockerfile_$envLabel -t kenaito-register.odboy.local:15000/springboot/$appname:$envLabel"_"$versioncode --build-arg APP_NAME=$appname --build-arg APP_ENV=$envLabel ./
    - buildah push --tls-verify=false kenaito-register.odboy.local:15000/springboot/$appname:$envLabel"_"$versioncode
  tags:
    - springboot
  only:
    - master
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
32
33
34
35
36

# 从上面可以看出,可以看出什么呢?

  • 每个项目都放一个明显不符合运维统一管理的需求
  • .gitlab-ci.yml 的内容太过冗长,内容可见,不具有保密性

# 针对以上两点,优化后的 .gitlab-ci.yml 内容如下

# 在 root 分组新建一个代码仓库,名称 devops-ci-template

jietu

# 仓库内容如下

jietu

# 那么优化过后的 .gitlab-ci.yml 文件内容如下

include:
  - project: 'root/devops-ci-template'
    ref: master
    file: '/springboot_maven/.gitlab-ci.yml'
1
2
3
4

# 变量流水线测试

新建流水线 http://kenaito-gitlab.odboy.local:20080/root/kenaito/-/pipelines/new (opens new window)

jietu

# 可以看到,结果和预期一样

  • 成功的隐藏了 .gitlab-ci.yml 内容
  • 达到了变量模版构建的目的

jietu

# 镜像仓库里面也是有这次成功构建的应用镜像的

jietu

# 镜像拉取测试(在节点 192.168.235.103测试)

为什么在这个节点测试呢,因为这个节点有部署docker和k8s单点集群。别忘记添加授信镜像节点,harbor也是一样的

docker pull kenaito-register.odboy.local:15000/springboot/kenaito-sso-service:online_202411141949 
1

jietu

最近更新: 2024-12-19
2017 - 武林秘籍   |