Files
netrunner-proxy/.gitea/workflows/build.yml
T
nineap d1bb4661d1
Build & Push Proxy Image / build (push) Successful in 4m51s
Fix: образ netrunner-proxy падал в рестарт-луп — GLIBC_2.38 not found
Dockerfile просто копировал бинарник, собранный ОТДЕЛЬНЫМ шагом прямо на
CI-раннере (ubuntu-24.04, glibc 2.39), в рантайм-образ debian:bookworm-slim
(glibc 2.36) — любой запуск падал: "GLIBC_2.38 not found". Затронуто
абсолютно любое развёртывание этого образа, не конкретная нода.

Теперь Dockerfile компилирует Rust ВНУТРИ себя, на том же bookworm, что и
рантайм (multi-stage + cargo-chef, тот же паттерн, что в
netrunner-backend/Dockerfile) — версии glibc гарантированно совпадают
независимо от ОС раннера. build.yml больше не собирает бинарник отдельным
шагом, только docker build; добавлен registry-кэш слоёв (type=gha требует
GitHub Actions Cache, у self-hosted act_runner его нет — см. аналогичный
фикс в netrunner-backend этой сессии).

Проверено локально: docker build проходит чисто, ./netrunner-proxy --help
запускается без ошибок glibc (до фикса — падал сразу).
2026-07-11 04:15:16 +07:00

49 lines
2.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Собирает netrunner-server (release-бинарник) и пушит Docker-образ во
# встроенный Container Registry самой Gitea (gitea.netrunner-vpn.com), не
# ghcr.io. Dockerfile теперь компилирует Rust ВНУТРИ себя (multi-stage,
# см. Dockerfile) — раньше бинарник собирался отдельным шагом прямо на
# CI-раннере (glibc раннера) и просто копировался в рантайм-образ
# (glibc bookworm-slim), рассинхрон версий ронял прод: "GLIBC_2.38 not
# found". Раздельная сборка на раннере убрана — только docker build.
#
# Нужен секрет GT_REGISTRY_TOKEN — токен Gitea с правом write:package,
# тот же, что и в netrunner-backend/netrunner-landing (пакеты в Gitea
# принадлежат аккаунту, не репозиторию, но значение нужно продублировать в
# Settings каждого из репозиториев).
name: Build & Push Proxy Image
on:
push:
branches: [main]
tags: ["v*"]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Gitea Registry
uses: docker/login-action@v3
with:
registry: gitea.netrunner-vpn.com
username: ${{ github.actor }}
password: ${{ secrets.GT_REGISTRY_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
push: true
tags: gitea.netrunner-vpn.com/nineap/netrunner-proxy:latest
# type=gha требует GitHub Actions Cache — self-hosted act_runner его
# не реализует (см. аналогичный фикс в netrunner-backend/build.yml
# этой же сессии); type=registry работает везде без спецсервиса.
cache-from: type=registry,ref=gitea.netrunner-vpn.com/nineap/netrunner-proxy:cache
cache-to: type=registry,ref=gitea.netrunner-vpn.com/nineap/netrunner-proxy:cache,mode=max