[docker] Docker에서 디렉토리 변경 명령?

도커에서 나는 이것을하고 싶다 :

git clone XYZ
cd XYZ
make XYZ

그러나 cd 명령이 없기 때문에 매번 전체 경로를 전달해야합니다 (XYZ / fullpath 작성). 이것에 대한 좋은 해결책이 있습니까?



답변

스크립트 또는 RUN에 대한보다 복잡한 매개 변수를 실행할 수 있습니다. 다음은 이전에 살펴보기 위해 다운로드 한 Dockerfile의 예입니다.

RUN cd /opt && unzip treeio.zip && mv treeio-master treeio && \
    rm -f treeio.zip && cd treeio && pip install -r requirements.pip

‘&&’를 사용하기 때문에 이전의 모든 명령이 성공한 경우에만 최종 ‘pip install’명령으로 이동합니다.

실제로 모든 RUN은 새로운 커밋 및 (현재) AUFS 레이어를 생성하므로 Dockerfile에 너무 많은 명령이 있으면 한계를 모두 사용하므로 RUN을 병합 (파일이 안정된 경우)하는 것이 매우 클 수 있습니다 유용한 일.


답변

다른 디렉토리로 변경하려면 WORKDIR을 사용하십시오 . WORKDIR 이후의 모든 RUN, CMD 및 ENTRYPOINT 명령은 해당 디렉토리에서 실행됩니다.

RUN git clone XYZ
WORKDIR "/XYZ"
RUN make


답변

RUN git clone http://username:password@url/example.git
WORKDIR /folder
RUN make


답변