
【Docker入門】Dockerfileの命令(ENTRYPOINT・ENV・WORKDIR)
Dockerfileの命令であるENTRYPOINT、ENV、WORKDIRは、それぞれ以下のような役割を果たします。
- ENTRYPOINT コマンドは、Docker コンテナを実行する際に実行されるデフォルトのコマンドを指定します。これにより、コンテナが起動した際の最初のコマンドを設定できます。
- ENV コマンドは、Dockerfile内で環境変数を設定します。環境変数を使って、コンテナ内での動作をカスタマイズできます。
- WORKDIR コマンドは、Dockerfile内で指定された命令を実行する際の作業ディレクトリを指定します。これにより、後続の命令が実行される際の作業ディレクトリを変更できます。
これらの命令について解説します。
ENTRYPOINT コマンド
ENTRYPOINT コマンドは、Docker コンテナーを実行する際に実行されるデフォルトのコマンドを指定するために使用されます。この命令は、コンテナーが実行される際の最初のコマンドを設定し、その後に追加のコマンドや引数を与えることができます。ENTRYPOINT の書式には、Exec 形式と Shell 形式の2つがあります。
書式
Exec 形式の書式
ENTRYPOINT ["コマンド", "引数1", "引数2", ...]
Shell 形式の書式
ENTRYPOINT コマンド 引数1 引数2 ...
使用例
Exec 形式の例
ENTRYPOINT ["nginx", "-g", "daemon off;"]
Shell 形式の例
ENTRYPOINT nginx -g 'daemon off;'
ENV コマンド
ENV コマンドは、Dockerfile 内で環境変数を設定するために使用されます。これにより、コンテナ内の実行環境をカスタマイズできます。ENV コマンドを使用すると、環境変数とその値を設定することができます。
書式
ENV [key] [value]
ENV [key]=[value]
使用例
ENV name "John"
ENV addr="New York"
WORKDIR コマンド
WORKDIR コマンドは、Dockerfile 内で指定された命令を実行する際の作業ディレクトリを指定します。これにより、後続の命令が実行される際の作業ディレクトリを変更できます。例えば、RUN、CMD、ENTRYPOINT、COPY、ADD などの命令が実行される際に、その作業ディレクトリが指定された場所に変更されます。
書式
WORKDIR [作業ディレクトリのパス]
使用例
WORKDIR /workdirectory
まとめ
これらの命令は、Dockerfile を使用して Docker イメージを構築する際に重要な役割を果たします。ENTRYPOINT はデフォルトの実行コマンドを設定し、ENV は環境変数を定義し、WORKDIR は作業ディレクトリを指定することで、コンテナの動作や環境をカスタマイズできます。