Sök…


Anmärkningar

  1. Basbilddeklaration ( FROM )
  2. Metadata (t.ex. MAINTAINER , LABEL )
  3. Installera systemberoende (t.ex. apt-get install , apk add )
  4. Kopiering app beroenden filen (t ex bower.json , package.json , build.gradle , requirements.txt )
  5. Installera appberoenden (t.ex. npm install , pip install )
  6. Kopiering av hela kodbasen
  7. Ställa in standardkonfigurationer för runtime (t.ex. CMD , ENTRYPOINT , ENV , EXPOSE )

Dessa beställningar görs för att optimera byggtiden med Dockers inbyggda cachemekanism.

Tommelfingerregel:

Delar som byter ofta (t.ex. codebase) ska placeras nära botten av Dockerfile, och vice versa. Delar som sällan ändras (t.ex. beroende) bör placeras överst.

Enkel 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"]

UNDERHÅLL kommer att avskrivas i Docker 1.13 och bör ersättas med LABEL. ( Källa )

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



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow