
私の目標は、全体ではなく一部のシステム間でソースファイルを共有することです。この例では、ソースディレクトリ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
バインドマウントを実行できます。したがって、マージしたいフォルダをリンクするのではなく、目的の2番目の場所に同じである必要があるフォルダをマウントするだけです。
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