Docker
Dockerfile-Inhalte bestellen
Suche…
Bemerkungen
- Basisbilddeklaration (
FROM
) - Metadaten (zB
MAINTAINER
,LABEL
) - Installation von Systemabhängigkeiten (zB
apt-get install
,apk add
) - App-Abhängigkeitsdatei
bower.json
(z. B.bower.json
,package.json
,build.gradle
,requirements.txt
) - App-Abhängigkeiten
npm install
(zBnpm install
,pip install
) - Kopieren der gesamten Codebasis
- Standard-Laufzeitkonfigurationen einrichten (zB
CMD
,ENTRYPOINT
,ENV
,EXPOSE
)
Diese Reihenfolge wird zur Optimierung der Buildzeit mithilfe des integrierten Cache-Mechanismus von Docker festgelegt.
Faustregel:
Teile, die sich häufig ändern (z. B. Codebase), sollten sich in der Nähe der Unterseite der Dockerfile befinden und umgekehrt. Teile, die sich selten ändern (z. B. Abhängigkeiten), sollten oben platziert werden.
Einfache 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 wird in Docker 1.13 nicht mehr empfohlen und sollte mit LABEL ersetzt werden. ( Quelle )
Beispiel: LABEL Maintainer = "John Doe [email protected]"
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow