我是靠谱客的博主 疯狂山水,最近开发中收集的这篇文章主要介绍Tekton构建SpringBoot工程(git+maven+dockerhub),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

总体步骤
    *.安装NFS。
    *.创建Volumes。
    *.使用Tekton hub的git-clone。
    *.使用Tekton hub的maven打包工程。
    *.使用Tekton hub的kaniko构建镜像并推送docker hub。
    

*.安装NFS。
    #安装NFS文件服务;    
    yum install nfs-utils -y
    #配置共享目录&权限;
    mkdir -p /data/nfs/
    vim /etc/exports
    /data/nfs/ *(rw,sync,no_root_squash)
    #启动NFS服务;
    service nfs restart
    
    注意:如有访问权限问题,可百度设置chown -R 或 chmod 设置下


    

*.创建Volumes,PV及PVC:用来存储代码及maven私服库。
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-nfs-maven-workspace
  namespace: default
spec:
  capacity:
    storage: 50G
  accessModes:
    - ReadWriteMany
  nfs:
    # FIXME: use the right IP
    server: 172.30.100.170
    path: /data/nfs/maven-workspace
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-nfs-maven-workspace
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 50G
*.使用Tekton hub的git-clone。
    *.创建git账户的secret
        kind: Secret
        apiVersion: v1
        metadata:
          name: my-basic-auth-secret
        type: Opaque
        stringData:
          .gitconfig: |
            [credential "http://100.100.100.100:8111/"] #具体是到git网站还是具体项目,记不清了,自己尝试下即可
              helper = store
          .git-credentials: |
            http://用户名:密码@100.100.100.100:8111/    #具体是到git网站还是具体项目,记不清了,自己尝试下即可
    *.安装task:git-clone
        kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/git-clone/0.8/git-clone.yaml
*.使用Tekton hub的maven编译工程。
    *.修改setting.xml中的<localRepository>/workspace/source/repository</localRepository> 与实际的一致
    *.创建maven的setting配置,configmap
        kubectl create cm custom-maven-settings --from-file=setting.xml
    *.手动的将私服库传到NFS的共享目录中
    *.安装task:maven
        kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/maven/0.2/maven.yaml
    
*.使用Tekton hub的kaniko构建镜像并推送docker hub。
    *.创建docker hub的账户信息secret,此文件就是docker login后生成的
        kubectl create secret generic secret-docker-hub --from-file=/root/.docker/config.json
    *.安装task:kaniko
        kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/kaniko/0.6/kaniko.yaml
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: pipeline-web-forward
spec:
workspaces:
- name: shared-workspace # 共享目录:存放mvn本地私服库、clone的代码、mvn编译代码、build打镜像
- name: maven-settings
# maven的setting文件,修改本地私服库地址:<localRepository>/workspace/source/repository</localRepository>
- name: git-basic-auth
# git的账户信息
- name: docker-hub-auth
# docker hub的账户信息
tasks:
- name: fetch-repository
taskRef:
name: git-clone
workspaces:
- name: output
workspace: shared-workspace
- name: basic-auth
workspace: git-basic-auth
params:
- name: url
value: http://xxxxx/xxxx/xxxx.git
- name: subdirectory
value: ""
- name: deleteExisting
value: "true"
- name: gitInitImage
value: "registry.cn-hangzhou.aliyuncs.com/coolops/tekton-git-init:v0.29"
- name: maven-run
taskRef:
name: maven
params:
- name: MAVEN_IMAGE
value: gcr.dockerproxy.com/cloud-builders/mvn:latest
- name: MAVEN_MIRROR_URL
value: http://repo1.maven.org/maven2
- name: CONTEXT_DIR
value: "ops_mng" # clone下来的项目文件夹名称,pom.xml存放在这个下面
- name: GOALS
value:
- clean
- install
workspaces:
- name: maven-settings
workspace: maven-settings
- name: source
workspace: shared-workspace
- name: kaniko-build
taskRef:
name: kaniko
params:
- name: IMAGE
value: xxxx/web-forward:v1 #自定义的镜像名称和tag,没有传Dokcerfile地址,会默认读取当前文件夹下的Dockerfile
- name: BUILDER_IMAGE
value: gcr.dockerproxy.com/kaniko-project/executor:v1.5.1
workspaces:
- name: dockerconfig
workspace: docker-hub-auth
- name: source
workspace: shared-workspace
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
name: maven-test-pipeline-run
spec:
pipelineRef:
name: pipeline-web-forward
workspaces:
- name: maven-settings
configMap:
name: custom-maven-settings
- name: shared-workspace
persistentvolumeclaim:
claimName: pvc-nfs-maven-workspace
- name: git-basic-auth
secret:
secretName: my-basic-auth-secret
- name: docker-hub-auth
secret:
secretName: secret-docker-hub

最后

以上就是疯狂山水为你收集整理的Tekton构建SpringBoot工程(git+maven+dockerhub)的全部内容,希望文章能够帮你解决Tekton构建SpringBoot工程(git+maven+dockerhub)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部