ruuuu2020/08/24 10:06ご回答ありがとうございます。 >カレントディレクトリを作業ディレクトリとして指定する、という意味です。 こちらなのですが、作業ディレクトリを指定するというのはホストOSでの作業ディレクトリのことでしょうか? こちらは指定せずとも、コンテナ内のことではないですし、指定する必要がないように思えてしまいます...
kazto2020/08/24 13:57 編集> 作業ディレクトリを指定するというのはホストOSでの作業ディレクトリのことでしょうか? ちがいます。Dockerは、指定したディレクトリ内のDockerfileを探して、ビルドします。そういう動作仕様なので、とやかく言っても仕方がない部分です。 そういうものなのだ、と思っていただくほかないかと思います。
ruuuu2020/08/24 17:27>指定したディレクトリ内のDockerfileを探して、ビルドします。 こちらですが、ここの部分は「-f」オプションにより実行されていると思うのですが、そうなりますと「. 」はコンテナ内の作業ディレクトリを指すかと思います。 その場合、コンテナ内の現在のディレクトリとホストOSの現在のディレクトリは対応づけられているということでしょうか。
kazto2020/08/25 01:07> ここの部分は「-f」オプションにより実行されている ちがいます。 > そうなりますと「. 」はコンテナ内の作業ディレクトリを指す ちがいます。 https://docs.docker.jp/engine/reference/commandline/build.html 試しに「.」なしで実行してみてください。エラーとなります。 https://docs.docker.jp/engine/reference/commandline/build.html#path > この例では PATH に . を指定しています。このローカルディレクトリにある全てのファイルは tar 化され、Docker デーモンに送られます。 PATH が示すのは、Docker デーモンが構築時に使う「コンテクスト」(内容物)としてのファイルを見つけるための場所です。デーモンはリモート上のマシンでも操作できるのを思い出してください。これは、クライアント側( docker build コマンドを実行した場所 )では Dockerfile は何らパース(解析)されません。つまり、 PATH に含まれる すべて のファイルが送信されるだけでなく、Dockerfile の ADD 命令で追加した場所も含みます。
ruuuu2020/08/25 10:57ご返信ありがとうございます。 「.」を指定していたのは、tar化されdockerデーモンに送るローカルのディレクトリやファイルを指定する「PATH」であった訳なのですね。
2020/08/24 10:06
2020/08/24 13:57 編集
2020/08/24 17:27
2020/08/25 01:07
2020/08/25 10:57