Skip to content

Учебник: Docker Build & Push

В этом учебнике вы создадите пайплайн, который собирает Docker-образ и публикует его в Docker Hub при каждом пуше тега версии (например, v1.2.3).

Время: ~10 минут Цель экспорта: GitHub Actions


Предварительные требования

  • Аккаунт Docker Hub
  • Репозиторий с Dockerfile в корне
  • Токен доступа Docker Hub (создайте на hub.docker.com → Account Settings → Security)

Что вы построите

Триггер: пуш тега v*


[Стейдж «Release»]
  └── docker-release (ubuntu-latest)
        1. Checkout
        2. Docker login
        3. Docker build
        4. Docker push
        5. Уведомить Slack (опционально)

Шаг 1 — Сохранить токен Docker Hub

Перед созданием пайплайна сохраните токен Docker Hub в хранилище учётных данных.

  1. Перейдите в Настройки → Учётные данные → Новые учётные данные
  2. Заполните:
    • Метка: Docker Hub Token
    • Провайдер: docker
    • Значение: <ваш токен доступа Docker Hub>
  3. Сохраните

Шаг 2 — Создать пайплайн

  1. Откройте (или создайте) ваш проект
  2. Нажмите Новый пайплайн → назовите docker-release

Шаг 3 — Настроить триггер

Нажмите Триггер:

  • Тип: Tag
  • Шаблоны тегов: v*

Срабатывает на любой тег, начинающийся с v.

Шаг 4 — Добавить стейдж «Release»

Добавьте стейдж Release.

Дважды кликните для входа. Добавьте джоб:

  • Название: docker-release
  • Runs on: ubuntu-latest

Войдите в джоб и добавьте шаги:

Шаг 1 — Checkout

  • Тип: git / Операция: checkout

Шаг 2 — Docker login

  • Тип: shell_command
  • Скрипт:
    bash
    echo "$DOCKER_TOKEN" | docker login -u "$DOCKER_USERNAME" --password-stdin
  • Секреты: выберите Docker Hub Token → будет внедрён как DOCKER_TOKEN
  • Переменные окружения: DOCKER_USERNAME = вашlogin

Шаг 3 — Docker build

  • Тип: docker / Операция: build
  • Имя образа: вашusername/my-app
  • Тег: ${ { github.ref_name } }
  • Dockerfile: ./Dockerfile

Шаг 4 — Docker push

  • Тип: docker / Операция: push
  • Образ: вашusername/my-app:${ { github.ref_name } }

Шаг 5 — Добавить тег latest (опционально)

  • Тип: shell_command
  • Скрипт:
    bash
    docker tag вашusername/my-app:${ { github.ref_name } } вашusername/my-app:latest
    docker push вашusername/my-app:latest

Шаг 5 — Сохранить и экспортировать

Нажмите Сохранить, затем Экспорт → GitHub Actions → Скачать.

Закоммитьте docker-release.yml в .github/workflows/.

Шаг 6 — Протестировать пайплайн

Запушьте тег:

bash
git tag v1.0.0
git push origin v1.0.0

GitHub Actions запустится, соберёт образ и опубликует вашusername/my-app:v1.0.0 и вашusername/my-app:latest в Docker Hub.


Добавить уведомление Slack (опционально)

В конце джоба добавьте шаг уведомления для объявления о релизе:

Шаг — Уведомить Slack

  • Тип: notification
  • Канал: slack
  • URL вебхука: сохранён как учётные данные Slack Webhook
  • Сообщение: 🚀 Выпущен вашusername/my-app:${ { github.ref_name } }

Released under the MIT License.