Переезд с ghcr.io на встроенный Container Registry Gitea
Build & Push Proxy Image / build (push) Failing after 7m45s

Каждая нода теперь логинится и тянет образ с gitea.netrunner-vpn.com
напрямую (secrets.GITEA_REGISTRY_TOKEN, тот же, что и в build.yml).
This commit is contained in:
2026-07-10 20:44:14 +07:00
parent 87f9f865ae
commit 521d77f0cc
2 changed files with 19 additions and 16 deletions
+14 -12
View File
@@ -1,11 +1,13 @@
# Собирает netrunner-server (release-бинарник) и пушит Docker-образ в ghcr.io.
# Dockerfile сам не компилирует Rust — он просто копирует уже готовый
# target/release/netrunner-server (см. Dockerfile), поэтому cargo build идёт
# отдельным шагом перед docker build, не внутри него.
# Собирает netrunner-server (release-бинарник) и пушит Docker-образ во
# встроенный Container Registry самой Gitea (gitea.netrunner-vpn.com), не
# ghcr.io. Dockerfile сам не компилирует Rust — он просто копирует уже
# готовый target/release/netrunner-server (см. Dockerfile), поэтому cargo
# build идёт отдельным шагом перед docker build, не внутри него.
#
# Нужен секрет GHCR_TOKEN — настоящий GitHub PAT с правом write:packages
# (автотокен Gitea для ghcr.io не годится, см. остальные .gitea/workflows/
# в других репозиториях — та же причина).
# Нужен секрет GITEA_REGISTRY_TOKEN — токен Gitea с правом write:package,
# тот же, что и в netrunner-backend/netrunner-landing (пакеты в Gitea
# принадлежат аккаунту, не репозиторию, но значение нужно продублировать в
# Settings каждого из репозиториев).
name: Build & Push Proxy Image
on:
@@ -32,12 +34,12 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GHCR
- name: Log in to Gitea Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GHCR_TOKEN }}
registry: gitea.netrunner-vpn.com
username: ${{ github.actor }}
password: ${{ secrets.GITEA_REGISTRY_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
@@ -45,4 +47,4 @@ jobs:
context: .
file: ./Dockerfile
push: true
tags: ghcr.io/nineap/netrunner-proxy:latest
tags: gitea.netrunner-vpn.com/nineap/netrunner-proxy:latest
+5 -4
View File
@@ -19,7 +19,8 @@
# провижининге через netrunner-backend, см. NodeService::provision_node_via_ssh):
# - PROXY_NODES_SSH_KEY — приватный SSH-ключ (root на все ноды)
# - PROXY_INTERNAL_SECRET — тот же секрет, что и PROXY_INTERNAL_SECRET у бэкенда
# - GHCR_TOKEN — тот же, что и в build.yml
# - GITEA_REGISTRY_TOKEN — тот же, что и в build.yml (Container Registry Gitea,
# не ghcr.io — каждая нода тянет образ напрямую с gitea.netrunner-vpn.com)
#
# Repo Variable (vars.*, не secret — публичный URL, не даёт доступа сам по себе):
# - BACKEND_URL — публичный адрес control plane (WEB_APP_BASE_URL у бэкенда)
@@ -89,8 +90,8 @@ jobs:
set -e
echo "🚀 Деплой на ${{ matrix.name }} (${{ matrix.host }}:${{ matrix.proxy_port }})"
echo "${{ secrets.GHCR_TOKEN }}" | docker login ghcr.io -u ${{ github.repository_owner }} --password-stdin
docker pull ghcr.io/nineap/netrunner-proxy:latest
echo "${{ secrets.GITEA_REGISTRY_TOKEN }}" | docker login gitea.netrunner-vpn.com -u ${{ github.actor }} --password-stdin
docker pull gitea.netrunner-vpn.com/nineap/netrunner-proxy:latest
docker stop netrunner-proxy 2>/dev/null || true
docker rm netrunner-proxy 2>/dev/null || true
@@ -102,7 +103,7 @@ jobs:
--cap-add NET_ADMIN --cap-add NET_RAW --cap-add DAC_OVERRIDE \
--device /dev/net/tun:/dev/net/tun \
-e PROXY_INTERNAL_SECRET="${{ secrets.PROXY_INTERNAL_SECRET }}" \
ghcr.io/nineap/netrunner-proxy:latest \
gitea.netrunner-vpn.com/nineap/netrunner-proxy:latest \
./netrunner-proxy \
--port "${{ matrix.proxy_port }}" \
--decoy-host "${{ matrix.decoy_host }}" \