使用docker工作流插件时,环境变量不一致

使用docker工作流插件时,环境变量不一致,docker,jenkins,jenkins-pipeline,Docker,Jenkins,Jenkins Pipeline,我正在尝试这样做: stage('reproduce') { sh """ echo '1' printenv PATH echo "$PATH" """ docker.image('python:3.6.4-slim').inside { sh "&quo

我正在尝试这样做:

    stage('reproduce') {
        sh """
            echo '1'
            printenv PATH
            echo "$PATH"
        """
        docker.image('python:3.6.4-slim').inside {
            sh """
                echo '2'
                printenv PATH
                echo "$PATH"
            """
            withEnv(["PATH=$PATH:/my/custom/path"]) {
                sh """
                    echo '3'
                    printenv PATH
                    echo "$PATH"
                """
            }
        }
    }
sh(1)给了我:

+ printenv PATH
/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ echo /opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ printenv PATH
/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ echo /opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
到目前为止一切都很好

sh(2)给了我:

+ printenv PATH
/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ echo /opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ printenv PATH
/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ echo /opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
这已经让人困惑了

sh(3)给出:

关于这一点,我有几个问题:

  • 为什么sh(2)中的printenv和echo显示不同的结果? 听起来像printenv打印来自docker图像的原始env,而echo打印来自主机jenkins的值
  • 为什么在docker容器内执行的withEnv不会修改docker的路径,而是修改Jenkins的路径