d1bb4661d1
Build & Push Proxy Image / build (push) Successful in 4m51s
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 (до фикса — падал сразу).
49 lines
2.3 KiB
YAML
49 lines
2.3 KiB
YAML
# Собирает 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
|