docker-compose
여러 개별 프로젝트를 위해 컨테이너를 오케스트레이션 하는 데 사용 하고 있습니다. 이러한 각 프로젝트에는 자체 컨테이너 집합이 있으며 다른 프로젝트와 관련이 없습니다.
예를 들면 :
/my-projects/project-1/docker-compose.yml
/my-projects/project-2/docker-compose.yml
/my-projects/project-3/docker-compose.yml
그러나 이러한 프로젝트는 모두 PHP 프로젝트이고 프론트 엔드 자산에 웹팩을 사용한다는 점에서 유사하므로 동일한 패키지 관리자를 공유합니다. composer
및 yarn
.
성능 측면에서 패키지 관리자 캐시에 대한 모든 프로젝트의 디렉토리 루트 외부에 공유 볼륨을 마운트 할 수 있는지 궁금합니다.
예를 들면 :
/my-projects/caches/composer
/my-projects/caches/npm
/my-projects/project-1/docker-compose.yml
/my-projects/project-2/docker-compose.yml
/my-projects/project-3/docker-compose.yml
어디 /my-projects/caches/composer
와 /my-projects/caches/npm
GET은 각 프로젝트 내에서 관련 컨테이너 내부에 장착. 명확하지 않은 경우 한 번에 하나의 프로젝트 만 스핀 업됩니다.
현재 두 프로젝트가 동일한 deps를 공유하면 각 프로젝트가 개별적으로 다운로드하고 캐시합니다. 빌드 시간 측면에서보다 성능이 좋은 방법은 공통 볼륨을 마운트하고 패키지 관리자의 캐시를 거기에 지정하여 "프로젝트 A"가 업데이트를 딥에 다운로드 할 때 "프로젝트 B"가 캐시에서로드 할 수 있도록하는 것입니다.
필요한 각 컨테이너에 볼륨 바인드와 동일한 디렉토리를 간단히 마운트 할 수 있습니다. 절대 경로를 사용할 수 있습니다 . 문서의 예제 중 하나조차도 바인드 마운트로 절대 경로를 사용하고 있습니다.
그러나 볼륨은 이미지 빌드 (동안 사용할 수없는 docker-compose build
명령이 좋아하는 곳이다 composer install
, npm install
또는 yarn install
어떤 경우에 실행해야합니다.
컨테이너 런타임에 이러한 명령을 실행하는 경우에도 이러한 캐시 디렉토리를 각 컨테이너에 마운트하는 것을 막을 수는 없습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다