Сборка образов Docker с помощью Actions
Автоматизируйте сборку образов Docker для приложений непосредственно в рабочих процессах GitHub Actions.
«Сборка образов Docker с помощью Actions» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Какие бывают образы Docker
Добро пожаловать! В этом уроке мы научимся собирать образы Docker с помощью GitHub Actions.
Сначала разберёмся, что такое образ Docker. Представьте его как лёгкий автономный исполняемый пакет, содержащий всё необходимое для запуска части программного обеспечения:
- ваш код;
- среду выполнения (например, Java или Python);
- системные инструменты и библиотеки;
- конфигурационные файлы.
Это своего рода шаблон для создания контейнеров Docker, который обеспечивает единообразную работу приложения в разных средах.
Зачем автоматизировать сборки Docker
Ручная сборка образов Docker может быть монотонной и приводить к ошибкам. Здесь и приходит на помощь автоматизация!
Интегрируя сборку образов Docker в конвейер CI/CD с помощью GitHub Actions, вы получаете:
- Единообразие: каждая сборка выполняется по одним и тем же шагам.
- Скорость: автоматизированные сборки выполняются быстрее ручных.
- Надёжность: уменьшается количество ошибок, вызванных человеческим фактором.
- Интеграцию: сборки автоматически запускаются при изменениях кода.
Это один из основных методов современной разработки DevOps!
Схема Dockerfile
Dockerfile — это текстовый файл, содержащий все команды для сборки образа Docker. Это своего рода рецепт.
Вот очень простой пример Dockerfile:
FROM alpine:latest
WORKDIR /app
COPY . .
CMD ["echo", "Hello from Docker!"]Разбор Dockerfile
Разберём этот простой Dockerfile:
FROM alpine:latest: задаёт базовый образ. Мы начинаем с небольшого дистрибутива Linux под названием Alpine.WORKDIR /app: задаёт рабочий каталог внутри образа.COPY . .: копирует все файлы из каталога проекта в каталог/appвнутри образа.CMD ["echo", "Hello from Docker!"]: эта команда выполняется при запуске контейнера, созданного из данного образа.
Этот файл находится в корневом каталоге проекта.
Настройка рабочего процесса
Чтобы собирать образы Docker с помощью GitHub Actions, создайте файл YAML (например, .github/workflows/docker-build.yml) в своём репозитории.
Этот файл определяет ваш рабочий процесс — последовательность автоматизированных шагов.
Базовый рабочий процесс сборки образа обычно включает:
- получение вашего кода;
- настройку среды сборки Docker;
- сборку образа Docker.
Шаг 1: получение кода
Первый шаг почти любого рабочего процесса GitHub Actions — получение кода из вашего репозитория. Для этого используется действие actions/checkout.
Оно клонирует репозиторий в среду выполнения, делая Dockerfile и код приложения доступными для процесса сборки.
В рабочем процессе это выглядит так:
- name: Checkout repository code
uses: actions/checkout@v4Шаг 2: настройка Docker Buildx
Далее нужно настроить среду сборки Docker. Настоятельно рекомендуется использовать docker/setup-buildx-action.
Buildx — это компонент Docker, расширяющий возможности сборки Docker и поддерживающий такие продвинутые функции, как мультиплатформенные сборки.
Добавьте этот шаг в рабочий процесс:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3Шаг 3: сборка образа Docker
Теперь главное — сборка образа! Для этого используется docker/build-push-action.
Основные параметры:
context: .: задаёт контекст сборки, обычно корневой каталог репозитория.push: false: пока мы просто соберём образ без отправки в реестр. Отправку рассмотрим в следующем уроке.tags: my-app:latest: назначает образу имя и тег.
- name: Build and tag Docker image
uses: docker/build-push-action@v5
with:
context: .
push: false
tags: my-app:latestПолный пример рабочего процесса сборки
Вот полный рабочий процесс GitHub Actions для сборки образа Docker. Помните, что этот YAML нужно поместить в .github/workflows/docker-build.yml.
Этот рабочий процесс будет запускаться при каждом push в ваш репозиторий.
name: Build Simple Docker Image
on: [push]
jobs:
build-image:
runs-on: ubuntu-latest
steps:
- name: Checkout repository code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and tag Docker image
uses: docker/build-push-action@v5
with:
context: .
push: false
tags: my-app:latestБыстрая проверка
Проверим, насколько вы поняли процесс сборки образов Docker с помощью GitHub Actions.
Итоги: сборка образов Docker
Отличная работа! Вы изучили основы автоматизации сборки образов Docker с помощью GitHub Actions.
Мы рассмотрели:
- что такое образы Docker и почему они важны;
- роль
Dockerfileкак схемы образа; - настройку базового рабочего процесса GitHub Actions;
- использование основных действий, таких как
actions/checkout,docker/setup-buildx-actionиdocker/build-push-action.
В следующем уроке мы рассмотрим, как отправлять собранные образы в реестр контейнеров!
Часто задаваемые вопросы
Урок «Сборка образов Docker с помощью Actions» бесплатный?
Да — полный текст урока «Сборка образов Docker с помощью Actions» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Сборка образов Docker с помощью Actions»?
Автоматизируйте сборку образов Docker для приложений непосредственно в рабочих процессах GitHub Actions. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Сборка образов Docker с помощью Actions»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Сборка образов Docker с помощью Actions
- Отправка образов в реестры
- Развёртывание в Kubernetes с помощью Actions
- Чарты Helm и манифесты Kubernetes в CI/CD