내 목표는 전체가 아닌 일부 시스템 간에 소스 파일을 공유하는 것입니다. 이 예에서 소스 디렉터리 machine_a
는 machine_b
서로의 정확한 복사본이므로 중복을 줄이기 위해 어떤 방식으로든 함께 결합하고 싶습니다.
recipe/
machine_a/
script_1.sh
script_2.sh
machine_b/
script_1.sh
script_2.sh
machine_c/
script_3.sh
개별 소스 파일 링크( -> 등) machine_b/
뿐만 아니라 심볼릭 링크도 시도했지만 문제는 빌드가 도커 컨테이너에서 수행되고 작업이 전체 복사를 수행하지 않기 때문에 빌드에 원본 소스 파일에 액세스합니다.machine_a/
machine_b/script_1.sh
machine_a/script_1.sh
do_fetch()
레시피 내부를 바꾸는 등 다른 방법도 생각해 볼 수 있지만 MACHINE_NAME
그것이 완전히 효과적이지는 않을 것 같습니다.
이를 달성하는 가장 좋은 방법은 무엇입니까?
답변1
바인드 마운트를 실행할 수 있습니다. 따라서 병합하려는 폴더를 연결하는 대신 원하는 두 번째 위치에 동일해야 하는 폴더를 마운트하기만 하면 됩니다.
recipe/
├─ machine_a/
│ ├─ script_1.sh
│ ├─ script_2.sh
├─ machine_b <-- mount the folder for machine_a here/
├─ machine_c/
│ ├─ script_3.sh
따라서 이 예에서 명령은 대략 다음과 같습니다.
$ sudo mount --bind recipe/machine_a recipe/machine_b
그런 다음 작동하면 설치를 추가하십시오./etc/fstab