Recherche…


Remarques

  1. Déclaration d'image de base ( FROM )
  2. Métadonnées (par exemple MAINTAINER , LABEL )
  3. Installation des dépendances du système (par exemple, apt-get install , apk add )
  4. Copie du fichier de dépendances de l'application (par exemple, bower.json , package.json , build.gradle , requirements.txt )
  5. Installation de dépendances d'application (par exemple, npm install pip install )
  6. Copier l'intégralité du code
  7. Configuration des configurations d'exécution par défaut (par exemple, CMD , ENTRYPOINT , ENV , EXPOSE )

Ces commandes sont destinées à optimiser le temps de création à l'aide du mécanisme de mise en cache intégré de Docker.

Règle de base:

Les parties qui changent souvent (par exemple, la base de code) doivent être placées au bas du fichier Dockerfile et vice-versa. Les parties qui changent rarement (par exemple les dépendances) doivent être placées en haut.

Simple 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 sera déconseillé dans Docker 1.13 et devra être remplacé par LABEL. ( Source )

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



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow