Docker
Dockerfile inhoud bestellen
Zoeken…
Opmerkingen
- Basisafbeeldingsverklaring (
FROM
) - Metadata (bijv.
MAINTAINER
,LABEL
) - Systeemafhankelijkheden installeren (bijv.
apt-get install
,apk add
) - Bestand met app-afhankelijkheden kopiëren (bijv.
bower.json
,package.json
,build.gradle
,requirements.txt
) - App-afhankelijkheden installeren (bijvoorbeeld
npm install
,pip install
) - Volledige codebasis kopiëren
- Standaard runtime-configs instellen (bijv.
CMD
,ENTRYPOINT
,ENV
,EXPOSE
)
Deze bestellingen zijn gemaakt om de bouwtijd te optimaliseren met behulp van het ingebouwde caching-mechanisme van Docker.
Vuistregel:
Onderdelen die vaak veranderen (bijv. Codebasis) moeten bijna onderaan Dockerfile worden geplaatst en omgekeerd. Onderdelen die zelden veranderen (bijv. Afhankelijkheden) moeten bovenaan worden geplaatst.
Eenvoudig Dockerbestand
# 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 wordt afgeschaft in Docker 1.13 en moet worden vervangen door LABEL. ( Bron )
Voorbeeld: LABEL Maintainer = "John Doe [email protected]"
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow