Docker 技術ログ

Dockerfileの「ADD」と「COPY」

2020年10月20日

【ページ更新日: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つを正しく入力し、ログインしてください。

  • この記事を書いた人
  • 最新記事

Maita Tomoya / yone

2020.4~Webアプリケーションエンジニアとして都内の企業で働き、空いている時間でブログを運営している29歳男です。本ブログは情報の整理をするため、文章を書く機会を作るために始めました。1記事でも多く「誰かのためになる記事」を書けるように頑張ります!転職前は地方の高校で働いていました。教育関係の記事も定期的に書いていきたいと思います。

-Docker, 技術ログ