0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Урок

Сборка образов Docker с помощью Actions

Автоматизируйте сборку образов Docker для приложений непосредственно в рабочих процессах GitHub Actions.

«Сборка образов Docker с помощью Actions» — бесплатный урок CI/CD with GitHub Actions & DevOps Pipelines на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CI/CD with GitHub Actions & DevOps Pipelines, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CI/CD with GitHub Actions & DevOps Pipelines содержит 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) в своём репозитории.

Этот файл определяет ваш рабочий процесс — последовательность автоматизированных шагов.

Базовый рабочий процесс сборки образа обычно включает:

  1. получение вашего кода;
  2. настройку среды сборки Docker;
  3. сборку образа 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) и разблокировать остальной курс CI/CD with GitHub Actions & DevOps Pipelines, подпишись на CoddyKit PRO. Курс CI/CD with GitHub Actions & DevOps Pipelines содержит 4 уроков всего.

Чему я научусь в уроке «Сборка образов Docker с помощью Actions»?

Автоматизируйте сборку образов Docker для приложений непосредственно в рабочих процессах GitHub Actions. Ты практикуешь CI/CD with GitHub Actions & DevOps Pipelines с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать CI/CD with GitHub Actions & DevOps Pipelines?

Предыдущий опыт не требуется. CI/CD with GitHub Actions & DevOps Pipelines на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Сборка образов Docker с помощью Actions»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке CI/CD with GitHub Actions & DevOps Pipelines?

Да. Каждый урок CI/CD with GitHub Actions & DevOps Pipelines включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Сборка образов Docker с помощью Actions
  2. Отправка образов в реестры
  3. Развёртывание в Kubernetes с помощью Actions
  4. Чарты Helm и манифесты Kubernetes в CI/CD
← Назад к CI/CD with GitHub Actions & DevOps Pipelines