ㅇ.ㅇ
[Docker] AccessDeniedException 본문
반응형
에러 내용
java.nio.file.AccessDeniedException: /var/jenkins_home/workspace/TEST
에러 파악
Jenkins가 mkdirs() 메서드를 호출하여 디렉토리를 생성하려고 했지만, 접근 권한이 부족하여 실패하였다. Jenkins 컨테이너 내부 혹은 호스트 머신의 디렉토리 권한 설정 문제일 가능성이 큼.
해결 방법
Jenkins가 워크스페이스에 접근할 수 있도록 디렉토리 권한을 수정해야 한다.
(1) Jenkins 컨테이너 내부에서 권한 수정
# Jenkins 컨테이너 내부 접속
docker exec -it jenkins /bin/bash
# 현재 워크스페이스 디렉토리 확인
ls -l /var/jenkins_home/workspace
# 디렉토리 권한 수정
chmod -R 775 /var/jenkins_home/workspace
chown -R jenkins:jenkins /var/jenkins_home/workspace
- docker exec -it jenkins /bin/bash → Jenkins 컨테이너 내부에 진입.
- ls -l → 디렉토리 소유자와 권한 확인.
- chmod -R 775 → Jenkins가 디렉토리에 쓰기 가능하도록 권한 부여.
- chown -R jenkins:jenkins → 디렉토리 소유자를 jenkins 사용자로 변경.
(2) 호스트 머신에서 권한 수정 (로컬 디렉토리를 마운트한 경우)
# 호스트 머신에서 Jenkins 워크스페이스 디렉토리 확인
ls -l /home/labs/jenkins/workspace
# 소유권 변경 (Jenkins 컨테이너에서 사용하는 UID:GID 확인 후 적용)
sudo chown -R 1000:1000 /home/labs/jenkins/workspace
# 권한 수정
sudo chmod -R 775 /home/labs/jenkins/workspace
- ls -l → 현재 디렉토리 소유자와 권한을 확인.
- chown -R 1000:1000 → Jenkins 컨테이너의 UID:GID(1000:1000)로 변경.
- chmod -R 775 → 모든 사용자(group)가 읽기/쓰기 권한을 가질 수 있도록 설정.
위와 같이 권한을 수정한 후, Jenkins에서 빌드를 다시 실행하여 정상적으로 동작하는지 확인한다.
반응형
'Docker' 카테고리의 다른 글
[Docker] Docker 기본 CLI (도커 강의 정리 #2) (0) | 2025.04.14 |
---|---|
[Docker] Docker 기본 개념 (도커 강의 정리 #1) (0) | 2025.04.08 |
[Docker] lazydocker 설치 방법 (0) | 2024.11.17 |
[Docker] 도커 시스템 공간 확보 (0) | 2024.11.15 |
[Docker] Docker 컨테이너에서 파일 추출하기 (1) | 2024.11.08 |