【ページ更新日:2020年10月20日】
Dockerfileで使用されるDockerインストラクションの「COPY」と「ADD」について説明します。
記事の内容と総括
- build contextについて
- COPYについて
- ADDについて
Dockerfileで使用されるDockerインストラクションの「COPY」と「ADD」は、ホストからコンテナにファイルやフォルダをコピーしたい時に使用する。
「COPY」
→ ホストからコンテナにファイルやフォルダをコピーする
「ADD」
→ ホストの圧縮ファイルをコンテナ内に解凍した状態で配置する
build contextについて
まずは、「COPY」と「ADD」を説明するときに登場する用語「build context」について説明します。
「build context」とは
「build context」とは、Dockerfileが格納されているフォルダのことを言います。
buildコマンドで使用されていた「build context」
DockerfileからDocker imageを作成するとき、次のコマンドをターミナル上で実行しました。
$ docker build <Dockerfileが格納されているフォルダ名>
つまり、このコマンドは「build context」という用語を使えば
$ docker build <build context>
となります。
このように、buildコマンドを実行するときは「build context」を指定する必要がありました。
ここで大切なのが、
『buildコマンドを実行する時に、なぜ「Dockerfile」を指定するのではなく「build context」を指定する必要があるのか』
です。
これは、「ホストのファイル・フォルダをコンテナにコピーする」という処理を行うためです。
詳しくは、次に紹介する「COPY」と「ADD」で説明します。
COPYについて
「COPY」は、Dockerfileで使用されるDockerインストラクション(FROM、RUN、CMDなど)の1つです。
「COPY」は、ホスト上のファイル・フォルダをコンテナ内にコピーしたいときに使用します。
COPYするファイルの置き場所
ADDについて
「ADD」は、Dockerfileで使用されるDockerインストラクション(FROM、RUN、CMD、COPYなど)の1つです。
「ADD」は、ホスト上のファイル・フォルダをコンテナ内にコピーしたいときに使用します。
アプリのプロジェクトフォルダに移動する
まず、最初にアプリのプロジェクトフォルダに移動します。
これは、プロジェクトフォルダのGitを使用するためです。
cdコマンドを使用してプロジェクトフォルダに移動してください。
Herokuへログインする
次に、Herokuへログインします。
ターミナル上で次のコマンドを実行してください。
$ heroku login -i
このコマンドを実行すると、次の2つの入力を要求されます。
- Herokuに登録したメールアドレス
- Herokuに登録してパスワード
この2つを正しく入力し、ログインしてください。