2016-09-21 4 views
2

도커 django 컨테이너를 설정하고 튜토리얼 here을 사용하여 빌드를 사용하여 이미지를 만들었습니다. 이 튜토리얼에서는 기본 장고 애플리케이션을 만드는 방법을 보여주고 응용 프로그램을 "/ code"으로 마운트합니다.이 내용은 데이터 볼륨에 포함되어 있습니다.도커 컨테이너의 코드 업데이트

그러나이 코드를 업데이트하고 개발하고 배포 할 수있는 방법을 알고 싶습니다. 내가 커밋을하면 데이터 볼륨의 일부이므로 코드의 변경 사항을 고려하지 않기 때문입니다.

장고 코드를 이미지의 일부로 만들거나 업데이트 된 코드로 이미지를 업데이트 할 수있는 방법이 있습니까?

+1

Python 소스 코드를 적절한 Python 종속성이 설치된 컨테이너에 추가하기 만하면됩니다. 컨테이너의'ENTRYPOINT'를'[ "python", "/path/to/my.py"]'로 유지하십시오. 도커 이미지를 작성하는 것은 태그에서만 또는 마스터 등에서와 같은 규칙에 따라 CI 시스템에서 수행해야 할 작업입니다. – activatedgeek

+0

데이터 볼륨이 아닌 컨테이너에 소스 코드를 어떻게 추가합니까? – bilalba

+0

일반적인 워크 플로에는 별도의 Dockerfile.development 및 Dockerfile이 있습니다 (프로덕션 용). 볼륨이 개발 중이지만 프로덕션 dockerfile에 볼륨 명령이 없습니다 (필요한 경우 필요하지 않음). 단순히 '추가'만하면됩니다./code'. 볼륨이 없습니다. – activatedgeek

답변

-1

tutorial의 9 단계에서 볼륨을 설정합니다. 이 볼륨은 현재 디렉토리와 컨테이너 /code 디렉토리를 연결합니다. 다른 말로하면, 그들은 동일 할 것입니다.

로컬 파일을 업데이트하면 컨테이너에있는 파일도 변경됩니다. 변경 사항을 적용하려면 앱을 다시 시작해야합니다.

이미지를 배포하기 전에 두 번째 도킹 프로그램 작성 파일을 만들어야합니다. 이 파일은 볼륨을 제거하므로 코드는 컨테이너 내부에 머무르며 외부에서 변경되지 않습니다. docker compose documentation에 제공된 단계를 수행 할 수 있습니다. 당신은 또한에 대한 내 대답을 참조

COPY /you/code/on/the/host /var/www 

같은 것을 수행 Dockerfile에 있도록 이미지를 업데이트 할 때, 때문에 응용 프로그램 코드 변경에 말할 수

+0

/code의 파일을 변경하면 로컬 웹 앱에 파일이 표시되지만 컨테이너 이미지를 푸시하고 배포하면 변경 사항이 포함되지 않습니다. – bilalba

+0

볼륨 옵션이 문제라고 생각합니다. 컨테이너를 밀고 실행할 때 볼륨은 더 이상 로컬 파일과 함께 작동하지 않지만 더 이상 작동하지 않습니다. 배포 할 코드를 반드시 업데이트하십시오. 다른 방법으로는 볼륨을 제거하는 것입니다. 그렇게하면 코드를 업데이트 할 때마다 이미지를 다시 작성해야합니다. – alejdg

+0

그게 내가 묻고있는거야. 배포 할 코드를 어떻게 업데이트합니까? – bilalba

0

, 당신은, 당신의 이미지 빌드하는 동안 COPY를 사용 "볼륨"및 이미지 빌드 https://stackoverflow.com/a/39314602/3625317을 사용하여 빌드에서 코드가 누락 된 이유를 확인하십시오.

관련 문제