docs: enhance README and CI workflow documentation for Docker image building and publishing process, including registry setup and job conditions for main/master branches
CI / changes (push) Successful in 5s
CI / go (push) Successful in 23s
CI / openapi (push) Has been skipped
CI / bird2 (push) Successful in 14s
CI / docker-images (deploy/docker/bird2/Dockerfile, evobgp-bird2) (push) Successful in 50s
CI / docker-images (deploy/docker/evobgp-agent/Dockerfile, evobgp-agent) (push) Successful in 1m6s
CI / docker-images (evobgp-all, 1, deploy/docker/gobinary/Dockerfile, evobgp-all) (push) Has been cancelled
CI / docker-images (evobgp-api, 1, deploy/docker/gobinary/Dockerfile, evobgp-api) (push) Has been cancelled
CI / docker-images (evobgp-deploy, 0, deploy/docker/gobinary/Dockerfile, evobgp-deploy) (push) Has been cancelled
CI / docker-images (evobgp-ingest, 0, deploy/docker/gobinary/Dockerfile, evobgp-ingest) (push) Has been cancelled
CI / docker-images (evobgp-node, 0, deploy/docker/gobinary/Dockerfile, evobgp-node) (push) Has been cancelled
CI / docker-images (evobgp-render, 0, deploy/docker/gobinary/Dockerfile, evobgp-render) (push) Has been cancelled
CI / docker-images (evobgp-scheduler, 0, deploy/docker/gobinary/Dockerfile, evobgp-scheduler) (push) Has been cancelled
CI / docker-images (deploy/docker/evobgp-web/Dockerfile, evobgp-web) (push) Has been cancelled
CI / changes (push) Successful in 5s
CI / go (push) Successful in 23s
CI / openapi (push) Has been skipped
CI / bird2 (push) Successful in 14s
CI / docker-images (deploy/docker/bird2/Dockerfile, evobgp-bird2) (push) Successful in 50s
CI / docker-images (deploy/docker/evobgp-agent/Dockerfile, evobgp-agent) (push) Successful in 1m6s
CI / docker-images (evobgp-all, 1, deploy/docker/gobinary/Dockerfile, evobgp-all) (push) Has been cancelled
CI / docker-images (evobgp-api, 1, deploy/docker/gobinary/Dockerfile, evobgp-api) (push) Has been cancelled
CI / docker-images (evobgp-deploy, 0, deploy/docker/gobinary/Dockerfile, evobgp-deploy) (push) Has been cancelled
CI / docker-images (evobgp-ingest, 0, deploy/docker/gobinary/Dockerfile, evobgp-ingest) (push) Has been cancelled
CI / docker-images (evobgp-node, 0, deploy/docker/gobinary/Dockerfile, evobgp-node) (push) Has been cancelled
CI / docker-images (evobgp-render, 0, deploy/docker/gobinary/Dockerfile, evobgp-render) (push) Has been cancelled
CI / docker-images (evobgp-scheduler, 0, deploy/docker/gobinary/Dockerfile, evobgp-scheduler) (push) Has been cancelled
CI / docker-images (deploy/docker/evobgp-web/Dockerfile, evobgp-web) (push) Has been cancelled
This commit is contained in:
+46
-1
@@ -8,5 +8,50 @@ Job **openapi** (Redocly) запускается только если в ком
|
||||
|
||||
- Метка `ubuntu-latest` (или измените `runs-on` под свои labels).
|
||||
- Job `bird2` ставит пакет **bird2** через `apt-get` на самом runner и вызывает `bird -c … -p` по файлам в checkout (без вложенного Docker: иначе bind-mount `/workspace/...` часто не виден демону Docker на хосте).
|
||||
- Job **docker-images** требует **Docker** и (для push) доступ к Container Registry Gitea с runner’а.
|
||||
|
||||
Секреты не обязательны для базового CI; для публикации образов добавьте свои шаги и credentials в отдельный workflow.
|
||||
## Сборка и публикация образов (`docker-images`)
|
||||
|
||||
Запускается только при **push** в ветки `main` или `master` (после успешного job `go`). Собираются образы из `deploy/docker/*` (все бинарники через `gobinary`, плюс `evobgp-web`, `evobgp-agent`, `evobgp-bird2`).
|
||||
|
||||
### Секреты репозитория (для push в реестр)
|
||||
|
||||
В настройках репозитория Gitea: **Settings → Actions → Secrets** (или аналог):
|
||||
|
||||
| Секрет | Назначение |
|
||||
|--------|------------|
|
||||
| `GITEA_REGISTRY_HOST` | Хост Docker-реестра (допустимо с `https://` — в workflow схема отрезается). Пример: `git.example.com` или `git.example.com:3000`. Значение попадает в переменную окружения **`REGISTRY`** для `docker/login-action`. |
|
||||
| `ACTIONS_PAT` | Персональный токен с правом **записи пакетов** (container / package write). Используется как пароль при `docker login`. |
|
||||
|
||||
Вход в реестр в workflow:
|
||||
|
||||
- **registry:** `${{ env.REGISTRY }}` (из шага подготовки);
|
||||
- **username:** `${{ gitea.actor }}` — пользователь, от имени которого запущен workflow (нативный контекст Gitea Actions);
|
||||
- **password:** `${{ secrets.ACTIONS_PAT }}`.
|
||||
|
||||
Если **`GITEA_REGISTRY_HOST` не задан** или нет **`ACTIONS_PAT`**, job только **собирает** образы локально (`docker buildx --load`) без push.
|
||||
|
||||
### Имена образов и теги
|
||||
|
||||
Формат:
|
||||
|
||||
```text
|
||||
<GITEA_REGISTRY_HOST>/<owner_lowercase>/<имя>:<тег>
|
||||
```
|
||||
|
||||
где `<имя>` — одно из: `evobgp-api`, `evobgp-all`, `evobgp-scheduler`, `evobgp-ingest`, `evobgp-render`, `evobgp-deploy`, `evobgp-node`, `evobgp-web`, `evobgp-agent`, `evobgp-bird2`.
|
||||
|
||||
Теги: `latest`, короткий SHA (7 символов), `sha-<полный_commit_sha>`.
|
||||
|
||||
Пример pull (подставьте свой хост и владельца):
|
||||
|
||||
```bash
|
||||
docker pull git.example.com/myuser/evobgp-api:latest
|
||||
```
|
||||
|
||||
Убедитесь, что в **Gitea** включены пакеты (Container Registry) и у токена есть права на создание/обновление образов. Если ваш инстанс требует другой путь имени образа, скорректируйте шаг `Build and push` в [ci.yaml](workflows/ci.yaml) (переменная `IMG`).
|
||||
|
||||
### Примечания
|
||||
|
||||
- Сборка с платформой `linux/amd64`. При необходимости добавьте `linux/arm64` и multi-arch в `docker buildx build`.
|
||||
- Для PR job **docker-images** не выполняется (только push в main/master), чтобы не публиковать образы из чужих форков без явной политики.
|
||||
|
||||
Reference in New Issue
Block a user