Ответ
Dockerfile — это текстовый файл, содержащий последовательность инструкций для автоматизированной сборки Docker-образа. Он служит "рецептом", описывающим все шаги, необходимые для создания готового к запуску контейнера, от выбора базовой операционной системы до установки зависимостей и запуска приложения.
Почему это важно?
Использование Dockerfile обеспечивает воспроизводимость сборок, изоляцию окружения и переносимость приложений между различными средами, что является ключевым для современных DevOps-практик. Сборка образа выполняется командой docker build.
Основные инструкции и их назначение:
FROM: Определяет базовый образ, на основе которого будет строиться новый (например,python:3.9-slim).RUN: Выполняет команды в процессе сборки образа (например, установка пакетов или компиляция кода).COPY/ADD: Копирует файлы и директории с хоста в образ.WORKDIR: Устанавливает рабочую директорию для последующих инструкцийRUN,CMD,ENTRYPOINT.EXPOSE: Информирует Docker о портах, которые контейнер будет прослушивать во время выполнения (например,EXPOSE 8000).CMD/ENTRYPOINT: Определяет команду, которая будет выполнена при запуске контейнера.
Пример Dockerfile для Python-приложения:
# Используем официальный образ Python 3.9 в минимальной версии
FROM python:3.9-slim
# Устанавливаем рабочую директорию внутри образа
WORKDIR /app
# Копируем файл с зависимостями и устанавливаем их
COPY requirements.txt .
RUN pip install -r requirements.txt
# Копируем остальное содержимое текущей директории в /app образа
COPY . .
# Открываем порт 8000 для входящих соединений
EXPOSE 8000
# Определяем команду для запуска приложения при старте контейнера
CMD ["python", "app.py"]