san*_*tel 4 jenkins docker jenkins-pipeline
我创建了一个 Jenkins 管道文件并创建了一个 Jenkinsfile。在 Jenkinsfile 中,我使用了 Dockerfile 代理,然后运行了一些步骤。这些步骤应该在 docker 内部运行,但它们却在主机上运行。密码是她的。
#!/usr/bin/env groovy
@Library(['abc-jenkins','xyz-jenkins-library']) _
pipeline {
agent {
dockerfile{
dir 'TEST'
filename 'dockerfile'
label 'docker'
}
}
stages {
stage('Build Stage') {
steps {
echo 'testing stage running'
sh "ls"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
根据 的输出,您误解了它ls。
对于 Jenkins pipeline docker DSL,它将把 jenkins 作业工作区挂载到 docker 容器,并将 docker 更改WORKDIR为 jenkins 作业工作区。
因此,当您在容器内执行时ls,它将打印 jenkins 作业工作空间下的文件和 fodler。
您可以尝试ls主机中不存在的其他cmd或其他文件夹,以确认它确实在容器而不是主机内执行。
| 归档时间: |
|
| 查看次数: |
11002 次 |
| 最近记录: |