Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
efc9a4f56a
commit
df08cbc121
2 files changed
+10
-10
No files matched your search
@@ -4,10 +4,10 @@
|
|||||||
# Нужно один раз настроить (подробно — docs/docker.md, раздел «CI/CD в Gitea»):
|
# Нужно один раз настроить (подробно — docs/docker.md, раздел «CI/CD в Gitea»):
|
||||||
# * включить Actions в репозитории и зарегистрировать act_runner с доступом к Docker;
|
# * включить Actions в репозитории и зарегистрировать act_runner с доступом к Docker;
|
||||||
# * Secrets репозитория:
|
# * Secrets репозитория:
|
||||||
# REGISTRY_USER пользователь Gitea
|
# ACTION_PAT токен Gitea (права write:package и read:package): им образ публикуется в реестр
|
||||||
# REGISTRY_TOKEN токен с правами write:package
|
# и скачиваются модели (Secret; Variable с тем же именем тоже подойдёт)
|
||||||
|
# REGISTRY_USER (необязательно) владелец токена; по умолчанию владелец репозитория
|
||||||
# MODELS_URL (необязательно) ссылка на models-bundle.tar.gz; без неё образ собирается без моделей
|
# MODELS_URL (необязательно) ссылка на models-bundle.tar.gz; без неё образ собирается без моделей
|
||||||
# MODELS_TOKEN (необязательно) токен для скачивания по MODELS_URL
|
|
||||||
name: docker
|
name: docker
|
||||||
|
|
||||||
on:
|
on:
|
||||||
@@ -33,7 +33,7 @@ jobs:
|
|||||||
- name: Модели (docker-models/models)
|
- name: Модели (docker-models/models)
|
||||||
env:
|
env:
|
||||||
MODELS_URL: ${{ secrets.MODELS_URL }}
|
MODELS_URL: ${{ secrets.MODELS_URL }}
|
||||||
MODELS_TOKEN: ${{ secrets.MODELS_TOKEN }}
|
MODELS_TOKEN: ${{ secrets.ACTION_PAT || vars.ACTION_PAT }}
|
||||||
run: |
|
run: |
|
||||||
if [ -n "$MODELS_URL" ]; then
|
if [ -n "$MODELS_URL" ]; then
|
||||||
echo "скачиваю модели"
|
echo "скачиваю модели"
|
||||||
@@ -89,9 +89,10 @@ jobs:
|
|||||||
|
|
||||||
- name: Публикация в реестр Gitea
|
- name: Публикация в реестр Gitea
|
||||||
env:
|
env:
|
||||||
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
|
REGISTRY_USER: ${{ secrets.REGISTRY_USER || github.repository_owner }}
|
||||||
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
|
REGISTRY_TOKEN: ${{ secrets.ACTION_PAT || vars.ACTION_PAT }}
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
|
test -n "$REGISTRY_TOKEN" || { echo "не задан ACTION_PAT (Settings → Actions → Secrets)"; exit 1; }
|
||||||
echo "$REGISTRY_TOKEN" | docker login "${{ steps.meta.outputs.registry }}" -u "$REGISTRY_USER" --password-stdin
|
echo "$REGISTRY_TOKEN" | docker login "${{ steps.meta.outputs.registry }}" -u "$REGISTRY_USER" --password-stdin
|
||||||
for t in ${{ steps.meta.outputs.tags }}; do docker push "$t"; done
|
for t in ${{ steps.meta.outputs.tags }}; do docker push "$t"; done
|
||||||
+3
-4
@@ -199,10 +199,9 @@ Workflow `.gitea/workflows/docker.yml` собирает образ и публи
|
|||||||
|
|
||||||
| Секрет | Значение |
|
| Секрет | Значение |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `REGISTRY_USER` | пользователь Gitea, под которым публикуется образ |
|
| `ACTION_PAT` | токен Gitea (Settings → Applications → Access Tokens) с правами `write:package` и `read:package`; им образ публикуется в реестр и скачиваются модели. Имена секретов не могут начинаться с `GITEA_` и `GITHUB_`, поэтому не `GITEA_TOKEN` |
|
||||||
| `REGISTRY_TOKEN` | токен этого пользователя с правами `write:package` (и `read:package`) |
|
| `REGISTRY_USER` | необязательно: владелец токена; по умолчанию — владелец репозитория (`denozord`) |
|
||||||
| `MODELS_URL` | необязательно: ссылка на `models-bundle.tar.gz`; нет — образ без моделей |
|
| `MODELS_URL` | необязательно: ссылка на `models-bundle.tar.gz`; нет — образ без моделей |
|
||||||
| `MODELS_TOKEN` | необязательно: токен с `read:package` для скачивания по `MODELS_URL` |
|
|
||||||
|
|
||||||
3. Реестр контейнеров Gitea доступен по HTTPS. Если Gitea по HTTP, добавьте её адрес в
|
3. Реестр контейнеров Gitea доступен по HTTPS. Если Gitea по HTTP, добавьте её адрес в
|
||||||
`insecure-registries` Docker на раннере и на VPS (`/etc/docker/daemon.json`).
|
`insecure-registries` Docker на раннере и на VPS (`/etc/docker/daemon.json`).
|
||||||
@@ -261,7 +260,7 @@ Workflow `.gitea/workflows/docker.yml` собирает образ и публи
|
|||||||
| 401 | не передан токен или он отличается от `DUB_API_TOKEN` |
|
| 401 | не передан токен или он отличается от `DUB_API_TOKEN` |
|
||||||
| Контейнер `unhealthy` в первые минуты | модель ещё грузится; `docker logs dub-ai`. Если не проходит — не хватает памяти (`docker stats`) |
|
| Контейнер `unhealthy` в первые минуты | модель ещё грузится; `docker logs dub-ai`. Если не проходит — не хватает памяти (`docker stats`) |
|
||||||
| CI: `Cannot connect to the Docker daemon` | у раннера нет доступа к Docker (см. «Что настроить один раз») |
|
| CI: `Cannot connect to the Docker daemon` | у раннера нет доступа к Docker (см. «Что настроить один раз») |
|
||||||
| CI: `unauthorized` при push | у `REGISTRY_TOKEN` нет `write:package` или `REGISTRY_USER` не владелец/участник пространства имён репозитория |
|
| CI: `unauthorized` при push | у `ACTION_PAT` нет `write:package` или токен принадлежит не владельцу/участник пространства имён репозитория |
|
||||||
| CI: образ без моделей, хотя ждали с ними | секрет `MODELS_URL` пуст или шаг скачивания пропущен — смотрите лог шага «Модели» |
|
| CI: образ без моделей, хотя ждали с ними | секрет `MODELS_URL` пуст или шаг скачивания пропущен — смотрите лог шага «Модели» |
|
||||||
|
|
||||||
## Что проверено, а что нет
|
## Что проверено, а что нет
|
||||||
|
|||||||
Reference in new issue
Block a user