从詹金斯运行的docker映像中的权限错误

时间:2019-01-30 16:00:06

标签: docker jenkins

我试图通过使它在jenkins中运行的docker镜像中运行来自动化我们的conda构建过程。但是,当我们的工具尝试访问目录时,出现权限错误。

在本地计算机上运行该工具时,没有任何错误。

詹金斯错误: PermissionError:[Errno 13]权限被拒绝:'/ home / build-dir / work'

用于创建docker映像的Docker文件包含

RUN \
    sudo -E mkdir /home/build-dir/ \
    && sudo -E chmod 666 /home/build-dir/ \
    && sudo -E mkdir /home/build-dir/work/ \
    && sudo -E chmod 666 /home/build-dir/work/ \
    && /home/jenkins/miniconda3/bin/conda install conda-build \
    && /home/jenkins/miniconda3/bin/conda env create --name molPy -f /linux-environment.yml

Jenkinsfile:

#!/usr/bin/env groovy

node {

  image = docker.image("x.com/molpy:dev")
  image.pull()
  image.inside("--privileged") {
    withEnv(['HOME=.']) {

      stage ('Checkout Code') {
        checkout scm
        sh 'git branch'
        sh 'git log HEAD^..HEAD'
      }

      stage ('Conda Build') {
        try {
          sh 'echo $PWD'
          sh 'bash -c "source /home/jenkins/miniconda3/bin/activate molPy && open-builder --build-dir=\'/home/build-dir/\' --output-dir=\'/home/output-dir\' --conversions=osx-64"'
        } catch(err) {
          currentBuild.result = "FAILED"
          throw err
        }
      }

    }
  }
}

1 个答案:

答案 0 :(得分:1)

该工具是否以jenkins用户身份运行,并正在尝试访问build-user的主目录?

如果是这样,/ home / build-dir /可能需要其他(chmod 667)的执行权限才能使该工具访问目录。工具完成后,可以重新更改权限。