Harbor-[安装部署|CI流水线集成]

root
233
文章
0
评论
2021年10月26日18:35:33 评论 3943字阅读13分8秒

Harbor-[安装部署|CI流水线集成]

Harbor安装部署配置

安装docker-compose

参考文档:Docker-compose

## 解压
tar zxf harbor-online-installer-v1.10.4.tgz
cd harbor 


## 编辑配置文件
vim harbor.yml 

----
### 修改主机名,注释https
hostname: 192.168.1.200

# http related config
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 80

# https related config
#https:
  # https port for harbor, default is 443
  #  port: 443
  # The path of cert and key files for nginx
  #certificate: /your/certificate/path
  #private_key: /your/private/key/path
  
  
----

## 安装
sh install.sh

[Step 4]: starting Harbor ...
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating registry      ... done
Creating harbor-portal ... done
Creating registryctl   ... done
Creating redis         ... done
Creating harbor-db     ... done
Creating harbor-core   ... done
Creating nginx             ... done
Creating harbor-jobservice ... done
✔ ----Harbor has been installed and started successfully.----

修改默认端口号

harbor.yml

  • port: 8080[固定]

docker-compose.yml

  • ports:
    - 8088:8080[固定]

创建镜像仓库

 

镜像上传

systemctl stop docker
[root@jeekins harbor]# cat /etc/docker/daemon.json
 {
   "storage-driver": "overlay2",
   "insecure-registries": ["192.168.1.110:8088"],
   "registry-mirrors": ["https://fooyh53n.mirror.aliyuncs.com"],
   "exec-opts": ["native.cgroupdriver=systemd"],
   "live-restore": true
 }
systemctl daemo-reload
systemctl restart docker

 

[root@jenkins harbor]# docker login 192.168.1.110:8088
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
docker tag goharbor/nginx-photon:v2.2.4 192.168.1.110:8088/hwf-app/nginx-photon:v2.2.4
docker push 192.168.1.110:8088/hwf-app/nginx-photon:v2.2.4

在仓库中查看

 

镜像下载

docker pull 192.168.1.200:8088/devops03/devops03-maven-service:1.9.1

 

CI流水线集成

jenkinsfile

@Library("hwf@main") _    

import hwf.devops.*           // 导入库

def checkout = new Checkout()
def build = new Build()

pipeline {

    agent { label "build" }

    stages{
        stage("Checkout"){
            steps{
                script {
                    println("GetCode")
                    checkout.GetCode("${env.srcUrl}", "${env.branchName}")
                }
            }
        }
        stage("Build"){
            steps{
                script{
                    println("Build")
                    env.prository='hwf-app'
                    env.imagename='nginx'
                    build.CodeBuild("${env.buildTool}")
                }
            }
        }
    }
}

 Checkout.groovy 

package hwf.devops
//下载代码
 def GetCode(srcUrl, branchName){
    checkout([$class: 'GitSCM', 
            branches: [[name: branchName]], 
            extensions: [], 
            userRemoteConfigs: [[
            credentialsId: '6ac312c6-9282-42ec-89a3-680356304ea2', 
            url: srcUrl]]])
}

 Build.groovy

package hwf.devops

//DockerBuild
def DockerBuild(){
    withCredentials([usernamePassword(credentialsId: 'efbe2a21-1c7b-4738-8be2-d8775907bb4d', 
	passwordVariable: 'TOKEN', 
	usernameVariable: 'USER')]) {
        sh """
        pwd
        ls -l
        #登录镜像仓库
        docker login -u "${USER}" -p "${TOKEN}" 192.168.1.110:8088

        # 构建镜像
        docker build -t 192.168.1.110:8088/${env.prository}/${env.imagename}:${env.tagName} .

        # 上传镜像
        docker push 192.168.1.110:8088/${env.prository}/${env.imagename}:${env.tagName}

        # 删除镜像
        sleep 2
        docker rmi 192.168.1.110:8088/${env.prository}/${env.imagename}:${env.tagName}
      """
    }
}

//Maven
def MavenBuild(){
    def buildTools = ["maven": "/data/apache-maven-3.8.3"]
    sh "${buildTools["maven"]}/bin/mvn clean package -DskipTests -f demo/pom.xml \
                        -s settings.xml"
}

//Gradle
def GradleBuild(){
    def buildTools = ["gradle": "/data/gradle-7.2"]
    sh "${buildTools["gradle"]}/bin/gradle clean && ${buildTools["gradle"]}/bin/gradle build -x test"
}

//Ant
def AntBuild(configPath="./build.xml"){
    sh "ant -f ${configPath}"
}

//Golang
def GoBuild(){
    def buildTools = ["go": "/data/go" ]
    sh "${buildTools["go"]}/bin/go build demo.go"
}

//Npm
def NpmBuild(){
    def buildTools = ["npm": "/data/node-v14.18.0-linux-x64" ]
    sh """
                    export PATH=\$PATH:${buildTools["npm"]}/bin
                    ${buildTools["npm"]}/bin/npm install
                    ${buildTools["npm"]}/bin/npm run build
    """
}

//Yarn
def YarnBuild(){
    sh "yarn install && yarn build "
}

//Main
def CodeBuild(type){
    switch(type){
        case "harbor":
            DockerBuild()
            break;
        case "maven":
            MavenBuild()
            break;
        case "gradle":
            GradleBuild()
            break;
        case "npm":
            NpmBuild()
            break;
        case "yarn":
            YarnBuild()
            break;
        default:
            error "No such tools ... [maven/ant/gradle/npm/yarn/go]"
            break
    }
}

 

 

继续阅读
weinxin
我的微信
这是我的微信扫一扫
  • 文本由 发表于 2021年10月26日18:35:33
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Harbor-用户密码重置 Harbor

Harbor-用户密码重置

Harbor-用户密码重置 一、找到harbor-db的容器,进入容器 # docker exec -it harbor-db bash   二、进入postgresql命令行 postgr...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: