Ответ
Dockerfile — это текстовый файл, содержащий последовательность инструкций для автоматической сборки образа Docker. Он служит "чертежом" для создания воспроизводимой и изолированной среды для вашего приложения.
Основные инструкции:
FROM: Задает базовый образ (например,python:3.9илиubuntu:20.04).WORKDIR: Устанавливает рабочую директорию внутри контейнера.COPY: Копирует файлы и папки с хост-машины в контейнер.RUN: Выполняет команды в процессе сборки (например,pip install -r requirements.txt).CMDилиENTRYPOINT: Определяет команду, которая будет выполнена при запуске контейнера.
Пример Dockerfile для простого Python-приложения:
# 1. Использовать официальный образ Python как базовый
FROM python:3.9-slim-buster
# 2. Установить рабочую директорию в /app
WORKDIR /app
# 3. Скопировать файл зависимостей и установить их
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 4. Скопировать исходный код приложения в рабочую директорию
COPY . .
# 5. Указать команду для запуска приложения
CMD ["python", "./app.py"]
Назначение Dockerfile:
- Автоматизация: Полностью автоматизирует процесс создания образа, исключая ручные ошибки.
- Воспроизводимость: Гарантирует, что образ, собранный на любой машине, будет абсолютно идентичным.
- Версионирование:
Dockerfileхранится в системе контроля версий (например, Git) вместе с кодом, что позволяет отслеживать изменения в инфраструктуре.
Сборка образа выполняется командой docker build -t my-app-image . в директории с Dockerfile.