jenkins构建应用镜像并将镜像推送到Harbor

271 阅读1分钟

编写jenkins流水线脚本

pipeline {
  agent any
  stages {
    // 拉取代码
    stage('pullCode') {

    }
    
    stage('WebBuild') {
      steps {
        script {
          docker.image('node:lts-buster').inside('-u 0:0 -v /var/jenkins_home/.npm:/root/.npm')

          sh """
            ls /root/.npm
            npm config set unsafe-perm=true
            npm config list
            npm config set cache /root/.npm
            npm config set registry https://registry.npm.taobao.org
            npm config list
            cd  demo && npm install --unsafe-perm=true && npm run build && ls -l /dist
          """
        }
      }
    }
    stage('BuildImage') {
      steps {
        script {
          
          sh """
            # 构建镜像
            docker build -t demo/demo-web-app:1.1.1 .
            # 上传镜像
            docker push
          """

        }
      }
    }
  }
}

编写dockerfile

在前端的项目目录里面添加dockerfile

FROM nginx:latest
COPY dist /usr/share/nginx/html

Harbor中镜像清理

如果不清理以前构建的镜像的话,会导致磁盘占用的磁盘空间越来越多