From a64ced71d23390a2431dfb2eea020d354bd7f882 Mon Sep 17 00:00:00 2001 From: Denozordec Date: Wed, 28 Oct 2026 17:24:45 +0700 Subject: [PATCH] =?UTF-8?q?CI:=20=D1=80=D0=B5=D0=B5=D1=81=D1=82=D1=80=20?= =?UTF-8?q?=D0=BF=D0=BE=20HTTPS-=D0=B0=D0=B4=D1=80=D0=B5=D1=81=D1=83=20git?= =?UTF-8?q?.shx.one,=20=D0=B0=20=D0=BD=D0=B5=20=D0=B2=D0=BD=D1=83=D1=82?= =?UTF-8?q?=D1=80=D0=B5=D0=BD=D0=BD=D0=B5=D0=BC=D1=83=20=D0=B0=D0=B4=D1=80?= =?UTF-8?q?=D0=B5=D1=81=D1=83=20Gitea?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 5.5 --- .gitea/workflows/docker.yml | 5 ++++- docs/docker.md | 8 ++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml index ed3e05a..d1f7233 100644 --- a/.gitea/workflows/docker.yml +++ b/.gitea/workflows/docker.yml @@ -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}" diff --git a/docs/docker.md b/docs/docker.md index 22620ca..11fd48b 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -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` пуст или шаг скачивания пропущен — смотрите лог шага «Модели» |