COPY と ADD
COPY コマンドは、
COPY [ローカルファイルへのパス] [コンテナ内のファイル設置パス]
とすることで、該当のローカルファイルをコンテナ内に設置することが可能です。
例えば、Dockerfileがあるディレクトリに以下の内容でtest.txtを作成し、
this is COPY command sample.
Dockerfileを以下の内容で作成します。
FROM ubuntu:18.04
COPY ./test.txt /
編集が完了したらイメージをビルドし、コンテナを生成してログインしましょう。
docker build -t [ユーザ名]/copy_sample:1.0 .
上記のコマンドでイメージを作成し、
docker container run --name copy_sample -it --rm [ユーザ名]/copy_sample:1.0
上記のコマンドでコンテナを生成し、ログインします。 lsコマンドでtest.txtがコンテナ内にコピーされているのを確認し、catコマンドなどで中身のテキストを確認しておきましょう。
ADD について
ADD コマンドはCOPYコマンドとほぼ同じですが
- gz などのアーカイブファイルを自動展開する
- URLを指定することで、リモートからファイルをコピーすることができる
といった違いがあります。
COPYの動作の方がより分かりやすいため、ADDを利用するよりもCOPYを利用した方が望ましいと言われています。
リモートURLのパッケージを取得する場合などは、curlやwgetなどのツールを利用するようにしましょう。