ADD/COPYコマンドは、ホストの現在の作業ディレクトリ外のファイルまたはディレクトリへのアクセスを許可しないことに気づきました。もう1つ、ADD/COPYコマンドの後にソースパスとしてファイル/ディレクトリの絶対パスを指定すると、それも許可されないということです。
これを参照して、ハッキングを楽しんでください! :)
================================================== =====================
Hostのユーザーのホームディレクトリの下にあるファイルを、同じユーザーのコンテナのホームディレクトリにコピー/追加したいと思います。
まず、各ホストでDockerfileを使用してDockerイメージを構築しているユーザーとしてユーザーを変更できます。たとえば、私のホストには、ユーザー「テスト」があります。他の人のホストには、ユーザー「初心者」がいます。各ホストで、私のDockerfileがビルド/使用されます。
以下は、ファイルをコピー/追加するための私のテスト構文です。
...
RUN mkdir -p /home/${USER}/.ssh
ADD /home/${USER}/.ssh/id_rsa* /home/${USER}/.ssh/
or COPY /home/${USER}/.ssh/id_rsa* /home/${USER}/.ssh/
...
このDockerファイルをビルドしようとすると、次のエラーが表示されます。
Step 43/44 : ADD /home/user/.ssh/id_rsa* /home/${USER}/.ssh/
No source files were specified
私がやりたいことをするように親切に案内してください。 :)ありがとう。
質問が出されてから2年が経ちましたが、@ Sung-JinParkがすでに見つけたものと同じことを述べている公式文書をここで引用したいと思います。
ADDは次のルールに従います。
- パスはビルドのコンテキスト内にある必要があります。 dockerビルドの最初のステップはコンテキストディレクトリ(およびサブディレクトリ)をdockerデーモンに送信することであるため、../something/somethingを追加することはできません。