CI: реестр по HTTPS-адресу git.shx.one, а не внутреннему адресу Gitea
docker / build (push) Successful in 49s

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
DenozordecandClaude Sonnet 5.5 committed 2026-10-28 17:24:45 +07:00
1 parent df08cbc121
commit a64ced71d2
2 files changed
+10 -3

No files matched your search

+4 -1
View File
@@ -18,6 +18,9 @@ on:
env:
IMAGE_NAME: dub-ai
# Публичный адрес реестра (HTTPS). Нельзя брать из GITHUB_SERVER_URL: внутри раннера это внутренний
# адрес Gitea (http://192.168.x.x:3000), у него нет HTTPS. Переопределяется переменной REGISTRY_HOST.
REGISTRY_HOST: ${{ vars.REGISTRY_HOST || 'git.shx.one' }}
jobs:
build:
@@ -52,7 +55,7 @@ jobs:
- name: Теги образа
id: meta
run: |
REGISTRY="${GITHUB_SERVER_URL#*://}" # хост Gitea без схемы
REGISTRY="${REGISTRY_HOST}"
REPO="$(echo "${GITHUB_REPOSITORY}" | tr '[:upper:]' '[:lower:]')"
IMAGE="${REGISTRY}/${REPO}/${IMAGE_NAME}"
TAGS="${IMAGE}:sha-${GITHUB_SHA::8}"
+6 -2
View File
@@ -203,8 +203,11 @@ Workflow `.gitea/workflows/docker.yml` собирает образ и публи
| `REGISTRY_USER` | необязательно: владелец токена; по умолчанию — владелец репозитория (`denozord`) |
| `MODELS_URL` | необязательно: ссылка на `models-bundle.tar.gz`; нет — образ без моделей |
3. Реестр контейнеров Gitea доступен по HTTPS. Если Gitea по HTTP, добавьте её адрес в
`insecure-registries` Docker на раннере и на VPS (`/etc/docker/daemon.json`).
3. Адрес реестра — `git.shx.one` (HTTPS), он задан в workflow (`REGISTRY_HOST`); другой можно указать
переменной репозитория `REGISTRY_HOST`. Адрес берётся не из `GITHUB_SERVER_URL`: внутри раннера это
внутренний `http://192.168.x.x:3000` без HTTPS, и `docker login` падает с «server gave HTTP response
to HTTPS client». Если реестр всё же по HTTP, добавьте его в `insecure-registries` Docker
(`/etc/docker/daemon.json`).
### Что делает workflow
@@ -260,6 +263,7 @@ Workflow `.gitea/workflows/docker.yml` собирает образ и публи
| 401 | не передан токен или он отличается от `DUB_API_TOKEN` |
| Контейнер `unhealthy` в первые минуты | модель ещё грузится; `docker logs dub-ai`. Если не проходит — не хватает памяти (`docker stats`) |
| CI: `Cannot connect to the Docker daemon` | у раннера нет доступа к Docker (см. «Что настроить один раз») |
| CI: `server gave HTTP response to HTTPS client` | workflow взял внутренний адрес Gitea; должен быть `REGISTRY_HOST` = `git.shx.one` (уже так в workflow) |
| CI: `unauthorized` при push | у `ACTION_PAT` нет `write:package` или токен принадлежит не владельцу/участник пространства имён репозитория |
| CI: образ без моделей, хотя ждали с ними | секрет `MODELS_URL` пуст или шаг скачивания пропущен — смотрите лог шага «Модели» |