Docker
Порядок размещения докеров
Поиск…
замечания
- Объявление базового изображения (
FROM
) - Метаданные (например,
MAINTAINER
,LABEL
) - Установка системных зависимостей (например,
apt-get install
,apk add
) - Копирование файла зависимостей приложений (например,
bower.json
,package.json
,build.gradle
,requirements.txt
) - Установка зависимостей приложений (например,
npm install
pip install
) - Копирование всей базы кода
- Настройка
ENTRYPOINT
времени выполнения по умолчанию (например,CMD
,ENTRYPOINT
,ENV
,EXPOSE
)
Эти заказы выполняются для оптимизации времени сборки с использованием встроенного механизма кэширования Docker.
Правило:
Части, которые часто меняются (например, кодовая база), должны располагаться вблизи дна 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 будет устаревшим в Docker 1.13 и должен быть заменен с помощью LABEL. ( Источник )
Пример: LABEL Maintainer = "John Doe [email protected]"
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow