簡體   English   中英

Jenkins docker.inside() 和共享卷

[英]Jenkins docker.inside() and shared volumes

在 Jenkins 工作中,當我在另一個容器中運行一個容器時,我會共享一些文件夾。

運行了三個系統

  • Docker 主機
  • MySql 容器
  • 高山集裝箱(內)

我可以使用“-v”選項在主機和 MySql 容器之間共享一個文件夾。 但是我如何在 Docker 和 Alpine 之間或在 Mysql 和 Alpine 之間共享它? 是否可以使用“--volumes-from”在兩個容器之間共享文件夾?

pipeline {
    agent none
    stages {
        stage('Run Tests') {                    
            parallel {
                stage("Dbms") { 
                    agent { label 'docker' }
                  steps {
                    script {
                        docker.image("mysql:5").withRun('-e "MYSQL_ROOT_PASSWORD=my-secret-pw" -v /home/jenkins:/home/jenkins:rw,z') { c ->
                            docker.image("maven:3.6-ibmjava-8-alpine").inside("--link ${c.id}:db") {
                                sh 'echo "Hello from Alpine"'
                            }
                        }
                    }
                  }
                }
            }
        }
    }
 }
 
 

我做到了。 解決方案是添加選項--name和選項--volumes-from ,如下例所示:

pipeline {
  agent none
  stages {
    stage('Run Tests') {
      environment {
        IMAGE1 = "alpine:latest"
        IMAGE2 = "jacobalberty/firebird:fbconsist"
      }
      parallel {
        stage("Dbms") {
          agent {
            label 'docker'
          }
          steps {
            script {
              docker.image("${env.IMAGE2}").withRun('-p 3051:3050 -e ISC_PASSWORD=masterkey -v /home/jenkins/firebird:/firebird/data:rw,z --name firebird') { c ->
                docker.image("${env.IMAGE2}").inside("--link ${c.id}:db --volumes-from firebird") {
                  // Wait until the service is up
                  sh 'while (! nc -v -z -w5 db 3050); do; sleep 1; done'
                  sh 'echo "OK Firebird is running"'
                }
                docker.image("${env.IMAGE1}").inside("--link ${c.id}:db --volumes-from firebird") {
                  sh 'echo "Hello from Alpine. From here Firebird is running on the host db, port 3050"'
                }
              }
            }
          }
        }
      }
    }
  }
}

暫無
暫無

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

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