サーチ…


備考

  1. ベースイメージ宣言( FROM
  2. メタデータ( MAINTAINERLABEL
  3. システム依存関係のインストール(例: apt-get installapk add
  4. アプリケーション依存ファイルのコピー(例: bower.jsonpackage.jsonbuild.gradlerequirements.txt
  5. アプリケーションの依存関係のインストール(例: npm installpip install
  6. コードベース全体をコピーする
  7. デフォルトの実行時設定を設定する( CMDENTRYPOINTENVEXPOSE

これらの順序は、Dockerに組み込まれたキャッシュメカニズムを使用して構築時間を最適化するために行われます。

親指のルール:

頻繁に変化する部分(コードベースなど)は、Dockerfileの一番下に配置する必要があります。ほとんど変化しない部品(例えば、依存関係)は、一番上に置く必要があります。

シンプルドッカーファイル

# Base image
FROM python:2.7-alpine

# Metadata
MAINTAINER John Doe <[email protected]>

# System-level dependencies
RUN apk add --update \
    ca-certificates \
    && update-ca-certificates \
    && rm -rf /var/cache/apk/*

# App dependencies
COPY requirements.txt /requirements.txt
RUN pip install -r /requirements.txt

# App codebase
WORKDIR /app
COPY . ./

# Configs
ENV DEBUG true
EXPOSE 5000
CMD ["python", "app.py"]

MAINTAINERはDocker 1.13で推奨されなくなり、LABELを使用して置き換える必要があります。 ( ソース

例:LABEL Maintainer = "John Doe [email protected]"



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow