1. ホーム
  2. docker

[解決済み] Dockerがコンテキスト外のシンボリックリンクをフォローする

2022-08-24 05:01:42

質問

Dockerのシンボリックリンクに関する質問をもうひとつ。私は、私のすべてのDockerビルドにコピーしたいファイルの束を持っています。私のディレクトリ構造は次のとおりです。

parent_dir
    - common_files
        - file.txt
    - dir1
        - Dockerfile  
        - symlink -> ../common_files

上記の例では、dir1内でdocker buildしたときにfile.txtがコピーされるようにしたいのです。しかし、file.txtのコピーを複数保持することは避けたい。 そこで このリンクは、docker version 0.10 時点で で、docker buildは

ADDビルドの手順については、コンテナのルート内のシンボリックリンクをたどってください。

しかし、私は そのようなファイルやディレクトリはありません と表示されます。

ADD symlink /path/dirname または ADD symlink/file.txt /path/file.txt

マウントオプションは、私の場合解決しません(クロスプラットフォーム...)。 私は tar -czh . | docker build -t を試してみましたが、成功しませんでした。

Dockerにシンボリックリンクをたどらせ、common_files/file.txtをビルドされたコンテナにコピーさせる方法はありますか?

どのように解決するのですか?

それは不可能であり、実装されません。ぜひ の議論をご覧ください。 :

<ブロッククオート

再現性がないため、これを許可していません。あなたのマシンのシンボリックリンクは私のマシンと同じではありませんし、同じ Dockerfile は 2 つの異なる結果を生成します。また、/etc/paasswd へのシンボリックリンクは、ローカル ファイルではなくホスト ファイルをリンクするため、問題を引き起こすでしょう。