2016-10-24 3 views
0

pip과 함께 설치된 종속성이 필요한 Python 응용 프로그램의 개발 환경을 유지 관리하고자합니다.Docker 및 pip 요구 사항

git repo에서 도커 볼륨으로 마운트 된 호스트 폴더로 소스 코드 (예 : requirements.txt)를 가져갈 계획입니다.

도서관을 최신 상태로 유지하면서도 모든 git pull과 함께 비싼 pip install -r requirements.txt을 피하는 도커 패턴이 있습니까?

+0

그래서 어떤 솔루션을 찾고 계십니까? "권장 사항"또는 "우수 사례"를 묻는 질문은 종종 "너무 광범위하게"닫힙니다. –

+0

@ BurhanKhalid 내 질문을 수정했습니다. 지금은 그다지 광범위하지 않기를 바랍니다. – max

+1

대부분 Docker 컨테이너에 파이썬 종속성을 설치하고 이미지로 유지해야합니다. 레포를 당길 때마다 최신 (또는 관련이있는) Docker 이미지를 가져 와서 같은 이미지로 작성된 컨테이너에 올려 놓습니다. 종속성이 업데이트 될 때 컨테이너를 수동으로 계속 업데이트해야합니다. 모든 푸시에 대해 이미지를 빌드 할 수 있도록 빌드 프로세스에서이를 유지하면 도움이 될 수 있습니다. – activatedgeek

답변

0

매번 설치하지 않으려면 전체 repo를 열기 전에 RUN 별도의 pip install 명령을 사용해야합니다. 당신이 컨테이너로 requirements.txt를 얻기 위해 다른 방법이 필요합니다 그렇게하려면 - 전체 원격 URL 지정, 어쩌면 ADD로 :

ADD https://raw.githubusercontent.com/etc/requirements.txt . 
RUN pip install -r requirements.txt 

을 때 docker build이, requirements.txt의 내용이 변경되지 않은 경우 다음 설치된 모든 종속성이있는 캐시 된 계층이 사용됩니다. 요구 사항 파일이 변경되면 설치가 다시 실행됩니다.

이와 같이하면 요구 사항 파일에 특정 버전이 필요하므로 버전 범프를 수동으로 업데이트해야합니다.

+0

그러나이 방법은 각'git pull '후에 로컬 컴퓨터에서 이미지를'docker build'할 필요가 없으며,'pip install'을 수행하고 10-15 분 기다렸다가 작업을 계속할 수 있습니다 ? 물론,'requirements.txt'가 변경되지 않으면, 이미지는 변경되지 않고 남아있어 디스크 공간을 절약 할 수 있습니다; 그러나'git pull' 후에 대기 시간을 피하기를 바랬습니다. – max