Ответ
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
.