我试图通过使它在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
}
}
}
}
}
答案 0 :(得分:1)
该工具是否以jenkins用户身份运行,并正在尝试访问build-user的主目录?
如果是这样,/ home / build-dir /可能需要其他(chmod 667
)的执行权限才能使该工具访问目录。工具完成后,可以重新更改权限。