>

Jenkins 내에서 실행되는 docker 이미지 내에서 실행하도록 시도하여 conda 빌드 프로세스를 자동화하려고합니다. 그러나 도구가 디렉토리에 액세스하려고 할 때 권한 오류가 발생합니다.

로컬 컴퓨터에서 도구를 실행할 때 오류가 없습니다.

Jenkins 오류 : PermissionError : [Errno 13] 권한 거부 : '/ home/build-dir/work'

도커 이미지를 생성하는 도커 파일에는 다음이 포함됩니다.

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
        }
      }
    }
  }
}


  • 답변 # 1

    이 도구는 jenkins 사용자로 실행되고 build-user의 홈 디렉토리에 액세스하려고합니까?

    그렇다면/home/build-dir /은 다른 사람에 대한 실행 권한이 필요할 수 있습니다 ( chmod 667 )를 사용하여 도구가 디렉토리에 액세스합니다. 도구가 완료된 후 권한을 다시 변경할 수 있습니다.

관련 자료

  • 이전 c# - 텍스트 파일 또는 여러 줄/리치 박스에서 한 줄씩 최소에서 큰 숫자로 정렬
  • 다음 tensor - 추가 치수에 파이 토치에서 nnLinear 층의 적용