Dev/Docker

Docker로 Jenkins 사용 시 볼륨관련 권한 문제

chiftkey 2019. 8. 15. 18:19

dockerhub의 공식 jenkins 이미지

 

jenkins - Docker Hub

DEPRECATION NOTICE This image has been deprecated in favor of the jenkins/jenkins:lts image provided and maintained by Jenkins Community as part of project's release process. The images found here will receive no further updates after LTS 2.60.x. Please ad

hub.docker.com

해당 이미지를 이용해서, docker volume을 사용하면서 컨테이너를 생성하고자 할 때 권한 오류로 인해서 컨테이너가 실행이 되지 않는다.

docker run --name jks -p 8080:8080 -p 50000:50000 -v <볼륨으로 사용할 디렉토리>:/var/jenkins_home jenkins

 

[chils@localhost 03_JKS]$ sudo docker ps -a
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS                     PORTS                    NAMES
418995ad594b        jenkins/jenkins:lts        "/sbin/tini -- /usr/…"   3 seconds ago       Exited (1) 2 seconds ago                            jks

docker logs로 오류를 확인해보면..

[chils@localhost 03_JKS]$ sudo docker logs jks
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

퍼미션 문제로 파일을 생성할 수 없다고 한다.

 

구글링하여 찾아본 결과, 해답이 있었다.

 

볼륨으로 사용할 디렉토리를 먼저 생성하고

sudo chown 1000 <볼륨으로 사용할 디렉터리>

해당 디렉토리의 권한을 변경해준다음 (강제적으로 1000의 UID에 권한 부여)

 

기존 생성된 docker 컨테이너는 삭제해준다.

sudo docker stop <컨테이너ID 혹은 이름> && sudo docker rm <컨테이너ID or 이름>

 

다시 맨위의 명령으로 도커를 실행한다.

 

 

출처 : https://github.com/jenkinsci/docker/issues/177#issuecomment-163656932

 

Permission denied - /var/jenkins_home/copy_reference_file.log · Issue #177 · jenkinsci/docker

copy_reference_file.log owned by root and not jenkins docker run -it \ --env JAVA_OPTS="${JAVA_OPTS}" \ --env JENKINS_SLAVE_AGENT_PORT=50001 \ --name photobox-base-jenkins \ -p 8080:8080 ...

github.com