feat(docker): update runtime configurations and documentation for evobgp components
quality / commitlint (push) Skipped
quality / changes (push) Successful in 7s
quality / openapi (push) Skipped
quality / web (push) Skipped
quality / docker-check (push) Skipped
quality / go (push) Failing after 44s
quality / bird2 (push) Skipped
CD / quality (push) Failing after 55s
CD / publish (push) Skipped
quality / commitlint (push) Skipped
quality / changes (push) Successful in 7s
quality / openapi (push) Skipped
quality / web (push) Skipped
quality / docker-check (push) Skipped
quality / go (push) Failing after 44s
quality / bird2 (push) Skipped
CD / quality (push) Failing after 55s
CD / publish (push) Skipped
- Changed the inheritance for `evobgp-deploy` and `evobgp-node` targets to use `_go-runtime-birdc`, reflecting the inclusion of the `bird` and `birdc` components. - Updated README and Dockerfile comments to clarify the runtime environments for various evobgp components, specifying the use of `bird` and `birdc` for parse-check functionality. - Adjusted quickstart documentation to accurately describe the `evobgp-api` image, highlighting the inclusion of `bird` and `birdc` for enhanced functionality.
This commit is contained in:
@@ -14,8 +14,8 @@ BuildKit кэширует `/go/pkg/mod`, `~/.cache/go-build` и pnpm store че
|
|||||||
|
|
||||||
| Образ | Runtime base | Заметка |
|
| Образ | Runtime base | Заметка |
|
||||||
|-------|----------------|---------|
|
|-------|----------------|---------|
|
||||||
| scheduler, ingest, render, deploy, node | `gcr.io/distroless/static-debian12:nonroot` | static Go (`CGO_ENABLED=0`), без shell |
|
| scheduler, ingest, render | `gcr.io/distroless/static-debian12:nonroot` | static Go (`CGO_ENABLED=0`), без shell |
|
||||||
| api, all | `debian:bookworm-slim` + `birdc` | только клиент birdc, без демона `bird` |
|
| api, all, deploy, node | `debian:bookworm-slim` + `bird` + `birdc` | `bird -p` (parse-check) и `birdc`; демон не запускается |
|
||||||
| agent | тот же Ubuntu+bird2, что bird2 | общие слои с `evobgp-bird2` |
|
| agent | тот же Ubuntu+bird2, что bird2 | общие слои с `evobgp-bird2` |
|
||||||
| bird2 | Ubuntu Noble + пакет bird2 | |
|
| bird2 | Ubuntu Noble + пакет bird2 | |
|
||||||
| web, web-all | `nginx:1.27-alpine` | `worker_processes 1` |
|
| web, web-all | `nginx:1.27-alpine` | `worker_processes 1` |
|
||||||
|
|||||||
@@ -236,13 +236,13 @@ target "evobgp-render" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
target "evobgp-deploy" {
|
target "evobgp-deploy" {
|
||||||
inherits = ["_go-runtime"]
|
inherits = ["_go-runtime-birdc"]
|
||||||
args = { BIN = "evobgp-deploy" }
|
args = { BIN = "evobgp-deploy" }
|
||||||
tags = image-tags("evobgp-deploy")
|
tags = image-tags("evobgp-deploy")
|
||||||
}
|
}
|
||||||
|
|
||||||
target "evobgp-node" {
|
target "evobgp-node" {
|
||||||
inherits = ["_go-runtime"]
|
inherits = ["_go-runtime-birdc"]
|
||||||
args = { BIN = "evobgp-node" }
|
args = { BIN = "evobgp-node" }
|
||||||
tags = image-tags("evobgp-node")
|
tags = image-tags("evobgp-node")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# syntax=docker/dockerfile:1.7
|
# syntax=docker/dockerfile:1.7
|
||||||
# Универсальная сборка бинарей cmd/* (ARG BIN) или всех сразу (target build-all).
|
# Универсальная сборка бинарей cmd/* (ARG BIN) или всех сразу (target build-all).
|
||||||
# Воркеры (runtime): distroless static. api/all (runtime-birdc): debian-slim + birdc.
|
# Воркеры (runtime): distroless static. api/all/deploy/node (runtime-birdc): debian-slim + bird + birdc.
|
||||||
# CI: docker buildx bake -f deploy/docker/docker-bake.hcl
|
# CI: docker buildx bake -f deploy/docker/docker-bake.hcl
|
||||||
ARG BASE_GOLANG=docker.io/library/golang:1.24-alpine
|
ARG BASE_GOLANG=docker.io/library/golang:1.24-alpine
|
||||||
ARG BASE_DEBIAN=docker.io/library/debian:bookworm-slim
|
ARG BASE_DEBIAN=docker.io/library/debian:bookworm-slim
|
||||||
@@ -57,14 +57,15 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
|||||||
&& BIRD_VERSION="${BIRD_VERSION}" /tmp/bird-from-source.sh \
|
&& BIRD_VERSION="${BIRD_VERSION}" /tmp/bird-from-source.sh \
|
||||||
&& rm -f /tmp/bird-from-source.sh
|
&& rm -f /tmp/bird-from-source.sh
|
||||||
|
|
||||||
# scheduler / ingest / render / deploy / node — static Go, без shell.
|
# scheduler / ingest / render — static Go, без shell.
|
||||||
FROM ${BASE_DISTROLESS} AS runtime
|
FROM ${BASE_DISTROLESS} AS runtime
|
||||||
ARG BIN=evobgp-api
|
ARG BIN=evobgp-api
|
||||||
COPY --from=build-all /out/${BIN} /usr/local/bin/evobgp
|
COPY --from=build-all /out/${BIN} /usr/local/bin/evobgp
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
ENTRYPOINT ["/usr/local/bin/evobgp"]
|
ENTRYPOINT ["/usr/local/bin/evobgp"]
|
||||||
|
|
||||||
# api / all — birdc (readline + ncurses). Только клиент birdc, без демона bird.
|
# api / all / deploy / node — bird -p (parse-check) + birdc configure.
|
||||||
|
# Демон BIRD в этом контейнере не запускается; процесс bird — в образе evobgp-bird2.
|
||||||
FROM ${BASE_DEBIAN} AS runtime-birdc
|
FROM ${BASE_DEBIAN} AS runtime-birdc
|
||||||
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
||||||
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
||||||
@@ -74,6 +75,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
|||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
ARG BIN=evobgp-api
|
ARG BIN=evobgp-api
|
||||||
COPY --from=build-all /out/${BIN} /usr/local/bin/evobgp
|
COPY --from=build-all /out/${BIN} /usr/local/bin/evobgp
|
||||||
|
COPY --from=birdc /usr/local/sbin/bird /usr/local/sbin/bird
|
||||||
COPY --from=birdc /usr/local/sbin/birdc /usr/local/sbin/birdc
|
COPY --from=birdc /usr/local/sbin/birdc /usr/local/sbin/birdc
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
ENTRYPOINT ["/usr/local/bin/evobgp"]
|
ENTRYPOINT ["/usr/local/bin/evobgp"]
|
||||||
|
|||||||
+1
-1
@@ -39,7 +39,7 @@ docker login git.shx.one
|
|||||||
|
|
||||||
| Образ | Назначение | Страница пакета (пример) | Pull |
|
| Образ | Назначение | Страница пакета (пример) | Pull |
|
||||||
|--------|------------|--------------------------|------|
|
|--------|------------|--------------------------|------|
|
||||||
| `evobgp-api` | HTTP API (с `birdc` в образе) | [packages/…/evobgp-api](https://git.shx.one/denozord/-/packages/container/evobgp-api/latest) | `docker pull git.shx.one/denozord/evobgp-api:latest` |
|
| `evobgp-api` | HTTP API (с `bird`/`birdc` в образе для parse-check) | [packages/…/evobgp-api](https://git.shx.one/denozord/-/packages/container/evobgp-api/latest) | `docker pull git.shx.one/denozord/evobgp-api:latest` |
|
||||||
| `evobgp-all` | Монолит microVPS: API + in-process воркеры scheduler/ingest/render/deploy | [packages/…/evobgp-all](https://git.shx.one/denozord/-/packages/container/evobgp-all/latest) | `docker pull git.shx.one/denozord/evobgp-all:latest` |
|
| `evobgp-all` | Монолит microVPS: API + in-process воркеры scheduler/ingest/render/deploy | [packages/…/evobgp-all](https://git.shx.one/denozord/-/packages/container/evobgp-all/latest) | `docker pull git.shx.one/denozord/evobgp-all:latest` |
|
||||||
| `evobgp-scheduler` | Планировщик (reference) | [packages/…/evobgp-scheduler](https://git.shx.one/denozord/-/packages/container/evobgp-scheduler/latest) | `docker pull git.shx.one/denozord/evobgp-scheduler:latest` |
|
| `evobgp-scheduler` | Планировщик (reference) | [packages/…/evobgp-scheduler](https://git.shx.one/denozord/-/packages/container/evobgp-scheduler/latest) | `docker pull git.shx.one/denozord/evobgp-scheduler:latest` |
|
||||||
| `evobgp-ingest` | Ingest CDN / ETag | [packages/…/evobgp-ingest](https://git.shx.one/denozord/-/packages/container/evobgp-ingest/latest) | `docker pull git.shx.one/denozord/evobgp-ingest:latest` |
|
| `evobgp-ingest` | Ingest CDN / ETag | [packages/…/evobgp-ingest](https://git.shx.one/denozord/-/packages/container/evobgp-ingest/latest) | `docker pull git.shx.one/denozord/evobgp-ingest:latest` |
|
||||||
|
|||||||
Reference in New Issue
Block a user