Docker
Classement du contenu de Dockerfile
Recherche…
Remarques
- Déclaration d'image de base (
FROM
) - Métadonnées (par exemple
MAINTAINER
,LABEL
) - Installation des dépendances du système (par exemple,
apt-get install
,apk add
) - Copie du fichier de dépendances de l'application (par exemple,
bower.json
,package.json
,build.gradle
,requirements.txt
) - Installation de dépendances d'application (par exemple,
npm install
pip install
) - Copier l'intégralité du code
- 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