docker - 如何将环境变量传递到 Jenkins 的 docker 容器中?

标签 docker jenkins continuous-integration

我在 docker 容器 (node:latest) 中运行我的 Jenkins 构建。

但是环境变量并没有在容器中定义:

$GIT_BRANCH, $GIT_COMMIT

所以我得到了这个错误:

GitHub has been notified of this commit’s build result

groovy.lang.MissingPropertyException: No such property: GIT_BRANCH for class: groovy.lang.Binding

    at groovy.lang.Binding.getVariable(Binding.java:63)

我有很多变量需要传递到容器中。如何使用 Jenkins 做到这一点?

我正在寻找继承 Jenkins 进程和我的主机/docker 中存在的所有环境变量的解决方案

这是我的 Jenkins 文件:

throttle(['throttleDocker']) {
  node('docker') {
    wrap([$class: 'AnsiColorBuildWrapper']) {
      try{
        docker.image('node:latest').inside {
          stage('Checkout SCM'){
            checkout scm
          }
          stage('PS'){ 
              sh 'node -v'
              sh 'ls'
          }
          stage('Verify Branch') {
                echo "$GIT_BRANCH"
                echo "$GIT_COMMIT"
          }
          stage('Build'){
              sh "npm run build"
              sh 'ls'
          }
          stage('Test'){
              sh 'echo "Test Stage inside container."'
          }
        }

最佳答案

也许 this

node ('linux-slave') {
    withEnv(['PATH=/usr/local/Cellar/coreutils/8.25/libexec/gnubin:/usr/local/Cellar/gnu-sed/4.2.2/libexec/gnubin:/Users/fbelzunc/cloudbees/support/support-shinobi-tools:/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home//bin:/Users/fbelzunc/bin:/usr/local/sbin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/MacGPG2/bin:/usr/local/sbin:/usr/local/Cellar/ruby/2.1.0/lib/ruby/gems/2.1.0/gems/bundler-1.6.5/bin:/usr/local/Cellar/ruby/2.1.0/lib/ruby/gems/2.1.0/gems/beaker-1.16.0/bin:/usr/local/Cellar/ruby/2.1.0/bin/:/path/testing']) {
        docker.image('maven:3.3.3-jdk-8').inside {
          sh 'echo $PATH'
          sh 'mvn --version'
        }
    }
    sh 'echo $PATH'
}

关于docker - 如何将环境变量传递到 Jenkins 的 docker 容器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62338100/

相关文章:

nginx - 用作卷路径的 docker-compose 环境变量未得到解析

docker - 无法在 swarm 撰写 yaml 文件中使用用户定义的桥

mysql - 无法通过 AWS 弹性负载均衡器与 MySQL 容器建立 SSL 加密连接

jenkins - Jenkins Pipeline 中的环境变量

ssl - 如何使用 Jenkins Artifactory 插件避免 Conan SSL 用户身份验证错误?

jenkins - 如何在 SWARM 模式下从 Jenkins 中删除离线(从站/节点)

unit-testing - 如何仅在特定错误退出值(0 除外)上将 Jenkins 构建标记为成功?

continuous-integration - Jenkins:如何在参数化构建中设置所需的参数?

maven-2 - 通过 Hudson 发布 Maven

maven - 在windows中使用docker设置redis配置