「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>Docker]] *目次 [#v6555c8a] #contents *概要 [#c4e55d6a] Dockerイメージを作成するファイル。 [[Dockerイメージ>Docker#vee01503]]を作成するために、[[Docker Build>Docker#t78af897]]コマンドに指定するファイル *詳細 [#v68a7d71] 基本構文 # コメント {命令} {引数} **命令 [#u2c8f9c1] ***命令の一覧 [#ia0f7565] |#|命令|説明|h |1|FROM|以降の命令で使う ベース・イメージ を指定する。&br;1行めを FROM 命令で指定する必要がある。| |2|MAINTAINER|生成するイメージの Author (作者)フィールドを指定する。| |3|RUN|2つの形式があり何れもコマンドを実行する| |4|CMD|RUNと似ていて、3つの形式があり、コンテナ実行時のデフォルトを提供する。| |5|LABEL|イメージにキー・バリューのメタデータを追加する。| |6|EXPOSE|特定のコンテナが実行時にポートをリッスンすることを Docker に伝える。| |7|ENV|環境変数と値をセットできる(1つ、若しくは複数)。| |8|ADD|ファイルやディレクトリをコピーする。| |9|COPY|ADDと似ているが、リモート、自動解凍の機能が無い。| |10|ENTRYPOINT|CMDと同様、2つの形式があり、CMDと連携して使われる。| |11|VOLUME|指定した名前でマウントポイントを作成し、&br;他から外部マウント可能なボリュームにする。| |12|USER|RUN、CMD、ENTRYPOINTの実行アカウントを指定する。| |13|WORKDIR|作業ディレクトリ指定する(ENVを併用できる)。| |14|ARG|docker build コマンドで使う変数、フラグを定義する。| |15|ONBUILD|次のビルドで実行するコマンドをイメージに仕込むことができるようになる。&br;要するに,親DockerfileのDockerfileコマンドを子Dockerfileのビルド時に実行できる。| |16|STOPSIGNAL|コンテナを終了時の、システム・コール・シグナルを設定する。| |17|HEALTHCHECK|ヘルスチェックを行う。| |18|SHELL|デフォルトのシェルを上書きする。cmd と powershell を sh に変更可能にする。| ***CoWレイヤ [#d094a05b] -一行毎に、CoWのレイヤが積み上がる。 -命令を一行にまとめるとレイヤが削減できる。 **その他 [#l4386cf0] ***コメント [#e543cc15] 「#」行コメントのヘッダ。 ***シンタックス [#t333be99] LLBを出力するプログラム(フロントエンド)の~ コンテナイメージのreference文字列を指定。 # syntax = tonistiigi/pack ***パーサ・ディレクティブ [#v5403108] 特殊な操作を行うオプション # ディレクティブ=値 ***環境変数置換 [#g39c5de4] 環境変数の文字列に置換する。 ${variable_name} *例 [#x5301343] **設定の例 [#e8aecaf3] -Dockerfileを使って設定ファイルを~ カスタマイズしたapache環境の構築 | masaki-blog~ https://masaki-blog.net/docker-apache-dockerfile **ビルドの例 [#ad1eef52] ***[[.netの例>https://techinfoofmicrosofttech.osscons.jp/index.php?.NET%20Core%E3%81%AEDockerfile]] [#n11f1393] ***javaの例 [#p4be6360] *参考 [#j3a138fe] -Dockerfile reference~ https://docs.docker.com/engine/reference/builder/ -Dockerfile のベストプラクティス — Docker-docs-ja 1.9.0b ドキュメント~ https://docs.docker.jp/engine/articles/dockerfile_best-practice.html **Qiita [#a40f2f42] -Docker multi stage buildで変わるDockerfileの常識~ https://qiita.com/minamijoyo/items/711704e85b45ff5d6405 -Dockerfileを書くためのベストプラクティス【参考訳】v18.09~ https://qiita.com/zembutsu/items/a96b68277d699f79418d -効率的に安全な Dockerfile を作るには~ https://qiita.com/pottava/items/452bf80e334bc1fee69a -Dockerfileの書き方を理解して、Dockerfileでnginxを起動させる~ https://qiita.com/roko18366758/items/cda1291d69e334acbf24