我的目标是在某些机器之间共享源文件,但不是全部机器。在此示例中,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
等),但问题是,由于构建是在 docker 容器中完成的,并且任务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