簡體   English   中英

聲明式詹金斯管道

[英]Declarative jenkins pipeline

我正在使用聲明性的詹金斯管道。 我是詹金斯的新手,所以我不明白。 我不知道如何處理此錯誤,有人可以告訴我什么是構建最佳選擇。

我有bash腳本,用於構建,標記和推送docker映像到存儲庫。 這是我的Jenkinsfile的一部分;

pipeline {
  agent {
    kubernetes {
      label 'bmf-worker'
      defaultContainer 'jnlp'
      yaml """
apiVersion: v1
kind: Pod
metadata:
labels:
  component: ci
spec:
  # Use service account that can deploy to all namespaces
  serviceAccountName: service-reader
  containers:
  - name: docker
    image: docker
    command:
    - cat
    tty: true
  - name: kubectl
    image: gcr.io/cloud-builders/kubectl
    command:
    - cat
    tty: true
  - name: gcloud 
    image: google/cloud-sdk
    command: 
    - cat
    tty: true
"""
}
  }
  stages {
    stage('Code Checkout and Setup') {
      steps {
        echo 'Code Checkout and Setup'


      }
    }
    stage('Build') {
      parallel { 
        stage('Build') {
          steps {
            echo 'Start building Frontend and Backend Docker images'
          }
        }
        stage('Build BMF Frontend') {
          steps {
            container('gcloud') {
            echo 'Building Bmf Frontend Image'
            sh 'chmod +x build.sh'
            sh './build.sh --build_bmf_frontend'
          }
          }
        }
        stage('Tag BMF Frontend') {
          steps {
            container('gcloud') {
            echo 'Building Bmf Frontend Image'
            sh 'chmod +x build.sh'
            sh './build.sh --tag_frontend'
          }
          }
        }
        stage('Build BMF Backend') {
          steps {
            container('gcloud') {
            echo 'Buildinging Bmf Backend Images'
            sh 'chmod +x build.sh'
            sh './build.sh --build_bmf_backend'
          }
          }
        }
        stage('Tag BMF Backend') {
          steps {
            container('gcloud') {
            echo 'Building Bmf Frontend Image'
            sh 'chmod +x build.sh'
            sh './build.sh --tag_frontend'
          }
          }
        }
      }
    }

如何使用podTemplate執行我的步驟。 當我將docker容器用於Stage Build BMF Backend時,出現這些錯誤;

  1. 無法通過unix:///var/run/docker.sock連接到Docker守護程序。 泊塢窗守護程序正在運行嗎?
  2. /home/jenkins/workspace/BMF/bmf-web@tmp/durable-c146e810/script.sh:第1行:./ build.sh:未找到

使用在podTemplate中定義的gcloud容器;

  1. time =“ 2019-03-12T13:40:56Z” level = error msg =“無法撥打gRPC:無法連接到Docker守護程序。'docker daemon'是否在此主機上運行?:撥打unix / var / run / docker .sock:連接:沒有這樣的文件或目錄”

  2. 無法通過unix:///var/run/docker.sock連接到Docker守護程序。 泊塢窗守護程序正在運行嗎?

以及如何標記docker圖像,因為我需要docker標記和git,因為tag是短提交。 使用docker時沒有git。

我的Jenkins管理員在Google Cloud Kubernetes上。

有人可以向我解釋執行作業的更好解決方案。

您面臨的第一個問題與Docker有關,而不與Jenkins有關。

Docker命令只能由root用戶或docker組中的用戶運行。

如果希望Jenkins用戶能夠執行Docker命令,則可以以root用戶身份運行以下命令以將Jenkins添加到Docker組:

usermod -aG docker jenkins

Docker文檔中對此進行了記錄

請注意,向用戶授予對Docker的訪問權限將有效地授予他們root訪問權限,因此請注意您添加到該組的用戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM