Dockerfileのベストプラクティスについて以下のページに記載されているので、自分用にピックアップ。
http://docs.docker.jp/engine/articles/dockerfile_best-practice.html
ガイドライン・推奨 | 備考 |
---|---|
コンテナはエフェメラルであるべき | |
.dockerignore ファイルを使う | ディレクトリには Dockerfile が構築に必要なファイルだけ追加 |
不要なパッケージのインストールを避ける | |
コンテナ毎に1つのプロセスだけ実行 | |
レイヤの数を最小に | |
複数行の引数 | 複数行の引数をアルファベット順にする。これにより、パッケージが重複しないようにしたり、リストの更新を簡単にする。 |
Dockerfile命令
命令 | 備考 |
---|---|
FROM | 自分のイメージの元として現在の公式レポジトリを使う。Debian イメージ 推奨 |
RUN | 複雑な RUN 命令はバックスラッシュを使い複数行に分割。RUN apt-get update と apt-get install は常に同じ RUN 命令文で連結。RUN apt-get update && apt-get install -y を使う。 |
CMD | CMD は常に CMD [“executable”, “param1”, “param2”…] のような形式で使うべきである |
EXPOSE | アプリケーションが一般的に使う、あるいは、伝統的なポートを使うべきである |
ADDとCOPY | COPY が望ましい。 |
WORKDIR | 常に WORKDIR からの絶対パスを使うべきである |