변경할 때마다 컨테이너를 다시 작성 하시겠습니까?
도커 문서는 사용에 제시 ONBUILD
하면 다음과 같은 시나리오가있는 경우 명령 :
예를 들어 이미지가 재사용 가능한 Python 애플리케이션 빌더 인 경우 특정 디렉토리에 애플리케이션 소스 코드를 추가해야하며 그 후에 빌드 스크립트를 호출해야 할 수 있습니다. 아직 애플리케이션 소스 코드에 대한 액세스 권한이없고 각 애플리케이션 빌드마다 다르기 때문에 지금 ADD 및 RUN을 호출 할 수 없습니다. 단순히 애플리케이션 개발자에게 상용구 Dockerfile을 제공하여 애플리케이션에 복사하여 붙여 넣을 수 있지만 이는 애플리케이션 별 코드와 혼합되기 때문에 비효율적이고 오류가 발생하기 쉬우 며 업데이트하기 어렵습니다.
기본적으로이 모든 것이 훌륭하고 훌륭하게 들리지만 이는 오타 일지라도 무언가를 변경할 때마다 앱 컨테이너를 다시 만들어야 함을 의미합니다.
예를 들어 브라우저에서 무언가를 변경하고 저장하고 새로 고침을 누르는 데 익숙한 웹 응용 프로그램을 만들 때 이는 매우 효율적이지 않은 것 같습니다.
이것을 어떻게 처리합니까?
오타 일지라도 무언가를 변경할 때마다 앱 컨테이너를 다시 만들어야 함을 의미합니다.
반드시 그런 것은 아니지만 명령에 -v
대한 옵션을 사용 하여 프로젝트 파일을 컨테이너 docker run
에 삽입 할 수 있습니다 . 따라서 도커 이미지를 다시 빌드 할 필요가 없습니다.
이 ONBUILD
지침은 Dockerfile FROM
이 상위 Dockerfile을 상속 하는 경우를위한 것입니다. ONBUILD
도커 아이 Dockerfile의 이미지를 빌드 할 때 부모 Dockerfile에있는 명령이 실행됩니다.
예를 들어 브라우저에서 무언가를 변경하고 저장하고 새로 고침을 누르는 데 익숙한 웹 응용 프로그램을 만들 때 이는 매우 효율적이지 않은 것 같습니다.
Docker 컨테이너를 사용하여 해당 애플리케이션 코드를 반복하는 동안 웹 애플리케이션을 제공하는 경우 앱을 실행하는 데 필요한 모든 항목 만 포함하고 앱 코드 만 포함하는 특수 Docker 이미지를 만드는 것이 좋습니다.
그런 다음 호스트 컴퓨터의 앱 코드가 포함 된 디렉터리를 Docker 컨테이너 내에서 애플리케이션 파일이 제공되는 디렉터리와 공유합니다.
예를 들어 정적 웹 사이트를 개발 중이고 작업 영역이에있는 /home/thomas/workspace/project1/
경우 다음을 사용하여 nginx를 실행하는 컨테이너를 시작합니다.
docker run -d -p 80:80 -v /home/thomas/workspace/project1/:/usr/local/nginx/html:ro nginx
이렇게 /home/thomas/workspace/project1/
하면 도커 이미지를 다시 빌드하거나 도커 컨테이너를 다시 시작할 필요없이 파일을 변경하고 변경 사항이 실시간으로 반영됩니다.
참고 URL : https://stackoverflow.com/questions/24272535/rebuild-container-after-each-change
'Program Tip' 카테고리의 다른 글
Python으로 월요일 날짜 찾기 (0) | 2020.12.13 |
---|---|
슬라이스를 가변 입력으로 어떻게 전달할 수 있습니까? (0) | 2020.12.12 |
Angular 1.5 구성 요소 대 이전 지시문-링크 함수는 어디에 있습니까? (0) | 2020.12.12 |
kubectl을 사용하여 Kubernetes 마스터에 대한 자세한 정보를 찾는 명령은 무엇입니까? (0) | 2020.12.12 |
속성이 있는지 테스트 (0) | 2020.12.12 |