【问题标题】:Permissions error within docker image running from Jenkins从 Jenkins 运行的 docker 映像中的权限错误
【发布时间】:2019-01-30 16:00:05
【问题描述】:

我正在尝试自动化我们的 conda 构建过程,尝试让它在 docker 镜像中运行,该镜像在 jenkins 中运行。但是,当我们的工具尝试访问目录时,我遇到了权限错误。

当我在本地机器上运行该工具时,我没有收到任何错误。

詹金斯错误: PermissionError: [Errno 13] Permission denied: '/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

詹金斯文件:

#!/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
        }
      }

    }
  }
}

【问题讨论】:

    标签: docker jenkins


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-24
      • 1970-01-01
      • 2017-02-10
      • 2022-06-27
      • 2020-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多