refactor: switch BIRD installation from source to Ubuntu package. Update CI workflow and Dockerfiles for evobgp-agent and bird2 to install bird2 from the Ubuntu repository, improving compatibility and simplifying the build process.
CI / changes (push) Successful in 8s
CI / openapi (push) Has been skipped
CI / go (push) Successful in 21s
CI / docker-web (deploy/docker/evobgp-web/Dockerfile, , evobgp-web) (push) Successful in 1m8s
CI / docker-web (deploy/docker/evobgp-web/Dockerfile, evobgp-all, evobgp-web-all) (push) Failing after 47s
CI / docker-bird (push) Successful in 40s
CI / bird2 (push) Successful in 14s
CI / docker-go (deploy/docker/evobgp-agent/Dockerfile, , evobgp-agent) (push) Successful in 1m3s
CI / docker-go (evobgp-all, 1, deploy/docker/gobinary/Dockerfile, , evobgp-all) (push) Successful in 3m6s
CI / docker-go (evobgp-api, 1, deploy/docker/gobinary/Dockerfile, , evobgp-api) (push) Successful in 2m36s
CI / docker-go (evobgp-deploy, 0, deploy/docker/gobinary/Dockerfile, , evobgp-deploy) (push) Successful in 2m46s
CI / docker-go (evobgp-ingest, 0, deploy/docker/gobinary/Dockerfile, , evobgp-ingest) (push) Successful in 1m20s
CI / docker-go (evobgp-node, 0, deploy/docker/gobinary/Dockerfile, , evobgp-node) (push) Successful in 1m10s
CI / docker-go (evobgp-render, 0, deploy/docker/gobinary/Dockerfile, , evobgp-render) (push) Successful in 1m20s
CI / docker-go (evobgp-scheduler, 0, deploy/docker/gobinary/Dockerfile, , evobgp-scheduler) (push) Successful in 1m20s
CI / changes (push) Successful in 8s
CI / openapi (push) Has been skipped
CI / go (push) Successful in 21s
CI / docker-web (deploy/docker/evobgp-web/Dockerfile, , evobgp-web) (push) Successful in 1m8s
CI / docker-web (deploy/docker/evobgp-web/Dockerfile, evobgp-all, evobgp-web-all) (push) Failing after 47s
CI / docker-bird (push) Successful in 40s
CI / bird2 (push) Successful in 14s
CI / docker-go (deploy/docker/evobgp-agent/Dockerfile, , evobgp-agent) (push) Successful in 1m3s
CI / docker-go (evobgp-all, 1, deploy/docker/gobinary/Dockerfile, , evobgp-all) (push) Successful in 3m6s
CI / docker-go (evobgp-api, 1, deploy/docker/gobinary/Dockerfile, , evobgp-api) (push) Successful in 2m36s
CI / docker-go (evobgp-deploy, 0, deploy/docker/gobinary/Dockerfile, , evobgp-deploy) (push) Successful in 2m46s
CI / docker-go (evobgp-ingest, 0, deploy/docker/gobinary/Dockerfile, , evobgp-ingest) (push) Successful in 1m20s
CI / docker-go (evobgp-node, 0, deploy/docker/gobinary/Dockerfile, , evobgp-node) (push) Successful in 1m10s
CI / docker-go (evobgp-render, 0, deploy/docker/gobinary/Dockerfile, , evobgp-render) (push) Successful in 1m20s
CI / docker-go (evobgp-scheduler, 0, deploy/docker/gobinary/Dockerfile, , evobgp-scheduler) (push) Successful in 1m20s
This commit is contained in:
+1
-1
@@ -16,7 +16,7 @@ Job **changes** вычисляет два флага:
|
|||||||
Требования к runner:
|
Требования к runner:
|
||||||
|
|
||||||
- Метка `ubuntu-latest` (или измените `runs-on` под свои labels).
|
- Метка `ubuntu-latest` (или измените `runs-on` под свои labels).
|
||||||
- Job `bird2` собирает **BIRD 2.14** из исходников (тот же скрипт, что в `deploy/docker/bird/bird-from-source.sh`, что и в образах) и вызывает `bird -c … -p` по файлам в checkout (без вложенного Docker: иначе bind-mount `/workspace/...` часто не виден демону Docker на хосте).
|
- Job `bird2` ставит пакет **bird2** из репозитория **Ubuntu** на runner (как образ `evobgp-bird2` на `ubuntu:noble`) и вызывает `bird -c … -p` по файлам в checkout (без вложенного Docker: иначе bind-mount `/workspace/...` часто не виден демону Docker на хосте).
|
||||||
- Job **docker-images** требует **Docker** и (для push) доступ к Container Registry Gitea с runner’а.
|
- Job **docker-images** требует **Docker** и (для push) доступ к Container Registry Gitea с runner’а.
|
||||||
|
|
||||||
## Сборка и публикация образов (`docker-images`)
|
## Сборка и публикация образов (`docker-images`)
|
||||||
|
|||||||
@@ -158,14 +158,12 @@ jobs:
|
|||||||
needs.changes.outputs.docker_go == 'true')
|
needs.changes.outputs.docker_go == 'true')
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Install BIRD from source (2.14, как в контейнерах)
|
- name: Install bird2 (репозиторий Ubuntu runner, как в образе evobgp-bird2)
|
||||||
run: |
|
run: |
|
||||||
set -euxo pipefail
|
set -euxo pipefail
|
||||||
if command -v sudo >/dev/null 2>&1; then SUDO=sudo; else SUDO=""; fi
|
if command -v sudo >/dev/null 2>&1; then SUDO=sudo; else SUDO=""; fi
|
||||||
$SUDO apt-get update -qq
|
$SUDO apt-get update -qq
|
||||||
$SUDO cp deploy/docker/bird/bird-from-source.sh /tmp/bird-from-source.sh
|
DEBIAN_FRONTEND=noninteractive $SUDO apt-get install -y -qq bird2
|
||||||
$SUDO chmod +x /tmp/bird-from-source.sh
|
|
||||||
$SUDO env BIRD_VERSION=2.14 bash /tmp/bird-from-source.sh
|
|
||||||
bird --version
|
bird --version
|
||||||
- name: bird -p on all scenario bird.conf files
|
- name: bird -p on all scenario bird.conf files
|
||||||
env:
|
env:
|
||||||
|
|||||||
@@ -1,15 +1,10 @@
|
|||||||
# BIRD 2.14+ из исходников (пакет Debian bookworm слишком старый).
|
# BIRD из репозитория Ubuntu (Noble 24.04 LTS) — актуальнее пакета Debian bookworm.
|
||||||
# Сборка: из корня репозитория: docker build -f deploy/docker/bird2/Dockerfile .
|
# Сборка из корня репозитория: docker build -f deploy/docker/bird2/Dockerfile .
|
||||||
FROM public.ecr.aws/docker/library/debian:bookworm-slim AS bird-build
|
# Зеркало ECR Public вместо прямого pull с Docker Hub.
|
||||||
ARG BIRD_VERSION=2.14
|
FROM public.ecr.aws/docker/library/ubuntu:noble
|
||||||
COPY deploy/docker/bird/bird-from-source.sh /tmp/bird-from-source.sh
|
RUN apt-get update \
|
||||||
RUN chmod +x /tmp/bird-from-source.sh && BIRD_VERSION="${BIRD_VERSION}" /tmp/bird-from-source.sh
|
&& apt-get install -y --no-install-recommends bird2 \
|
||||||
|
|
||||||
FROM public.ecr.aws/docker/library/debian:bookworm-slim
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends libreadline8 libtinfo6 \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
COPY --from=bird-build /usr/local/sbin/bird /usr/local/sbin/bird
|
|
||||||
COPY --from=bird-build /usr/local/sbin/birdc /usr/local/sbin/birdc
|
|
||||||
COPY deploy/bird/bird.conf /etc/bird/bird.conf
|
COPY deploy/bird/bird.conf /etc/bird/bird.conf
|
||||||
RUN mkdir -p /etc/bird/bird.d
|
RUN mkdir -p /etc/bird/bird.d
|
||||||
EXPOSE 179
|
EXPOSE 179
|
||||||
|
|||||||
@@ -1,21 +1,15 @@
|
|||||||
# evobgp-agent + BIRD 2.14+ (bird/birdc) из исходников — совпадает с образом evobgp-bird2.
|
# evobgp-agent + bird2 из репозитория Ubuntu Noble (тот же стек, что evobgp-bird2).
|
||||||
# См. gobinary/Dockerfile — ECR Public вместо прямого pull с Docker Hub (устойчивость CI).
|
# См. gobinary/Dockerfile — ECR Public вместо прямого pull с Docker Hub.
|
||||||
FROM public.ecr.aws/docker/library/golang:1.22-bookworm AS build
|
FROM public.ecr.aws/docker/library/golang:1.22-bookworm AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
COPY go.mod go.sum ./
|
COPY go.mod go.sum ./
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN go build -trimpath -ldflags="-s -w" -o /out/evobgp-agent ./cmd/evobgp-agent
|
RUN go build -trimpath -ldflags="-s -w" -o /out/evobgp-agent ./cmd/evobgp-agent
|
||||||
|
|
||||||
FROM public.ecr.aws/docker/library/debian:bookworm-slim AS bird-build
|
FROM public.ecr.aws/docker/library/ubuntu:noble
|
||||||
ARG BIRD_VERSION=2.14
|
RUN apt-get update \
|
||||||
COPY deploy/docker/bird/bird-from-source.sh /tmp/bird-from-source.sh
|
&& apt-get install -y --no-install-recommends bird2 ca-certificates \
|
||||||
RUN chmod +x /tmp/bird-from-source.sh && BIRD_VERSION="${BIRD_VERSION}" /tmp/bird-from-source.sh
|
|
||||||
|
|
||||||
FROM public.ecr.aws/docker/library/debian:bookworm-slim
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends libreadline8 libtinfo6 ca-certificates \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
COPY --from=bird-build /usr/local/sbin/bird /usr/local/sbin/bird
|
|
||||||
COPY --from=bird-build /usr/local/sbin/birdc /usr/local/sbin/birdc
|
|
||||||
COPY --from=build /out/evobgp-agent /usr/local/bin/evobgp-agent
|
COPY --from=build /out/evobgp-agent /usr/local/bin/evobgp-agent
|
||||||
WORKDIR /etc/bird
|
WORKDIR /etc/bird
|
||||||
ENTRYPOINT ["/usr/local/bin/evobgp-agent"]
|
ENTRYPOINT ["/usr/local/bin/evobgp-agent"]
|
||||||
|
|||||||
Reference in New Issue
Block a user