2017-02-17 4 views
0

나는 다음과 같은 Dockerfile를 사용 Docker Volume에 복제 된 git이 없습니까?

FROM centos 
VOLUME ["apitests"] 
RUN su 
RUN yum -y install git 
RUN git clone https://github.com/Human-Connection/CUBE-arduino-yun.git /apitests/ 

다음 내 이미지

docker build -t apitesting . 

를 구축하고

docker run -ti apitesting /bin/bash 

가 지금은 컨테이너 내/apitests을 찾을 쉘과 컨테이너를 시작합니다. 그러나 복제 된 자식 데이터를 찾을 수 없습니다.

내가 뭘 잘못하고 있니?

답변

3

데이터가있는 후 VOLUME을 정의하십시오. Docker는 이미지에있는 내용으로 VOLUME을 자동으로 채 웁니다. 처음에는 /apitests이 비어 있습니다.

FROM centos 
RUN yum -y install git 
RUN git clone https://github.com/Human-Connection/CUBE-arduino-yun.git /apitests/ 
VOLUME ["apitests"] 

또한 RUN su은 자체 단계가 없으므로 아무 것도 수행하지 않습니다. 각 RUN은 자체 컨테이너에서 실행됩니다. RUN 단계 사이에있는 유일한 것은 디스크에 쓰여지고이어서 이미지 레이어에 커밋 된 것입니다.

+0

감사합니다. 그것은 작동 ... – Marc

2

이것은 저에게 효과적입니다 : 디렉토리에 데이터를 작성 +로드 한 후에 볼륨을 정의하십시오.

FROM centos 
RUN yum -y install git 
RUN mkdir /apitests 
RUN git clone https://github.com/Human-Connection/CUBE-arduino-yun.git /apitests/ 
VOLUME /apitests