Docker
Zamawianie zawartości pliku Dockerfile
Szukaj…
Uwagi
- Podstawowa deklaracja obrazu (
FROM
) - Metadane (np.
MAINTAINER
,LABEL
) - Instalowanie zależności systemowych (np.
apt-get install
,apk add
) - Kopiowanie pliku zależności aplikacji (np.
bower.json
,package.json
,build.gradle
,requirements.txt
) - Instalowanie zależności aplikacji (np.
npm install
pip install
) - Kopiowanie całej bazy kodu
- Konfigurowanie domyślnych configs wykonawcze (np
CMD
,ENTRYPOINT
,ENV
,EXPOSE
)
Te uporządkowania są wykonywane w celu optymalizacji czasu kompilacji za pomocą wbudowanego mechanizmu buforowania Dockera.
Reguła kciuka:
Części, które często się zmieniają (np. Podstawa kodu) powinny być umieszczone w pobliżu dna pliku Docker i odwrotnie. Części, które rzadko się zmieniają (np. Zależności) należy umieścić na górze.
Prosty plik Docker
# 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 zostanie uznany za przestarzały w Docker 1.13 i powinien zostać zastąpiony przy użyciu LABEL. ( Źródło )
Przykład: LABEL Maintainer = "John Doe [email protected]"
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow