Учебник: 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 в хранилище учётных данных.
- Перейдите в Настройки → Учётные данные → Новые учётные данные
- Заполните:
- Метка:
Docker Hub Token - Провайдер:
docker - Значение:
<ваш токен доступа Docker Hub>
- Метка:
- Сохраните
Шаг 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 — Протестировать пайплайн
Запушьте тег:
git tag v1.0.0
git push origin v1.0.0GitHub 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 } }
