Zoeken…


Opmerkingen

  1. Basisafbeeldingsverklaring ( FROM )
  2. Metadata (bijv. MAINTAINER , LABEL )
  3. Systeemafhankelijkheden installeren (bijv. apt-get install , apk add )
  4. Bestand met app-afhankelijkheden kopiëren (bijv. bower.json , package.json , build.gradle , requirements.txt )
  5. App-afhankelijkheden installeren (bijvoorbeeld npm install , pip install )
  6. Volledige codebasis kopiëren
  7. 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