2017-05-23 2 views
1

나는 Docker 컨테이너에서 Jenkins를 실행 중입니다. 홈 디렉토리는 컨테이너 업데이트가 수행 될 때 빌드 기록이 보존되도록하기 위해 호스트 볼륨에 있습니다.Docker 파일을 변경하면 Docker가 마운트 할 때 볼륨 내용을 업데이트합니까?

컨테이너를 업데이트하여 홈 디렉토리에 추가 파일을 만들었습니다. 새 컨테이너를 당길 때 변경된 파일을 볼 수 없습니다.

ENV JENKINS_HOME=/var/jenkins_home 
RUN mkdir -p ${JENKINS_HOME}/.m2 
COPY settings.xml ${JENKINS_HOME}/.m2/settings.xml 
RUN chown -R jenkins:jenkins ${JENKINS_HOME}/.m2 
VOLUME ["/var/jenkins_home"] 

나는이 같은 컨테이너를 실행하고 있습니다 :

docker run -v /host/directory:/var/jenkins_home -p 80:8080 jenkins 

나는 이전 실행 젠킨스을했고 그래서 홈 디렉토리가 이미 호스트에 존재합니다. 새 컨테이너를 가져 와서 실행하면 .m2/settings.xml 파일이 생성되지 않은 것을 알 수 있습니다. 왜 이래요? 기본적으로

+0

디렉토리가 성공적으로 빌드 된 경우 컨테이너 내부를 보려고 했습니까?컨테이너를 올바르게 다시 조립 하시겠습니까? 빌드 프로세스에 오류가 있습니까? 예 : 디렉토리가 존재하지 않기 때문에 파일을 복사 할 수 없습니까? – Gabbax0r

+0

'docker build' 명령이 완료까지 실행됩니다. 빌드 중에 오류가보고되지 않습니다. 용기 안을 들여다 보면 무슨 의미일까요? 'docker exec -it jenkins/bin/bash'를 실행하고 컨테이너 안에'.m2' 디렉토리가 없다는 것을 알았습니다. – John

+0

변수 이름없이 cp를 시도하십시오. RUN mkdir /.m2 COPY settings.xml /.m2/settings.xml – Gabbax0r

답변

1

당신은 실행하면

docker run -v /host-src-dir:/container-dest-dir my_image 

당신은 당신이 명령은 호스트 디렉토리를 마운트 Docs

$ docker run -d -P --name web -v /src/webapp:/webapp training/webapp python app.py 

에서 /host-src-dir

에있는 것과 /container-dest-dir,/src에 오버레이됩니다/webapp를/webapp의 컨테이너에 추가합니다. 경로/webapp가 이미 컨테이너 이미지에있는 내부에있는 경우/src/webapp 마운트가 오버레이되지만 기존 내용 인 은 제거되지 않습니다. 마운트가 제거되면 내용은 에 다시 액세스 할 수 있습니다. 이는 mount 명령의 예상되는 동작과 일치합니다.

이 SO 질문

당신이 (즉, 컨테이너가 소스 호스트가 목적지)의 주위에 그것을 다른 방법을 원하는 것 또한 docker mounting volumes on host

관련이있다. docker inspect --format='{{json .Mounts}}' my_container

  • 이 당신에게 줄 것이다 docker run --name=my_container my_image

  • 실행 :

    1. -v 즉없이 Dockerfile에

    2. 실행하여 볼륨을 작성 : 여기

      는 해결 방법입니다 비슷한 출력 :

    가 컨테이너에로 디렉토리를 의미

    [{"Name":"5e2d41896b9b1b0d7bc0b4ad6dfe3f926c73","Source":"/var/lib/docker/volumes/5e2d41896b9b1b0d7bc0b4ad6dfe3f926c73/_data","Destination":"/var/jenkins_home","Driver":"local","Mode":"","RW":true,"Propagation":""}]

  • 불행하게도, 내가 대신 특정 호스트 디렉토리에 마운트 할 수있는 방법을 모르는 호스트 디렉토리 /var/lib/docker/volumes/5e2d41896b9b1b0d7bc0b4ad6dfe3f926c73/_data

    에 장착되었다.

    관련 문제