From 98a5e67f822167a35ef6f54145a6d59a8473607a Mon Sep 17 00:00:00 2001 From: JustMe Date: Mon, 12 Oct 2026 02:09:50 +0800 Subject: [PATCH] ci: reuse NativeAOT build image [CI] --- docs/deployment.md | 2 +- server/Dockerfile | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/docs/deployment.md b/docs/deployment.md index 9582c03..0f51233 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -42,7 +42,7 @@ CAPTCHA_SECRET= `.woodpecker/release-backend.yml` 响应 `vMAJOR.MINOR.PATCH` SemVer tag;也可手动运行并传入 `RELEASE_TAG`(例如 `v0.1.0`)。发布 workflow 会重新执行 Core、Web 和服务端完整检查,全部通过后才用 Linux native agent 的 Buildah 构建并推送后端镜像 tag 与 `latest`。所有 workflow 都通过 Woodpecker secret `gitea_clone_webdrop` 从 `https://git.oeo.one` 克隆公开仓库。 -两条流水线固定到 `ci: domain-linux-native` 的 `linux/amd64` Agent;该主机需要 Node 24、.NET 10 和 Buildah。release job 在 `WOODPECKER_BACKEND_LOCAL_TEMP_DIR` 对应的持久目录缓存 Buildah 层,Dockerfile 单独缓存 NuGet restore 层。Gitea webhook 走同 Docker 网络中的 `woodpecker-server:8000`,代码 clone 走公网 Git 域名。 +两条流水线固定到 `ci: domain-linux-native` 的 `linux/amd64` Agent;该主机需要 Node 24、.NET 10 和 Buildah。release job 在 `WOODPECKER_BACKEND_LOCAL_TEMP_DIR` 对应的持久目录缓存 Buildah 层;Dockerfile 使用带 NativeAOT 前置工具的 `10.0-noble-aot` SDK 镜像,不再运行 apt 安装 clang/zlib;NuGet restore 层也由 Buildah 缓存。Gitea webhook 走同 Docker 网络中的 `woodpecker-server:8000`,代码 clone 走公网 Git 域名。 后端镜像发布到 `registry.oeo.one/justme/webdrop-api`。Woodpecker Linux agent 通过 TLS 连接 registry;发布需要 Buildah 与 push/tag/manual 事件可用的 `zot_secret` secret。使用已发布镜像时,在 `.env` 中设置 `WEBDROP_IMAGE_TAG`,仓库名已填入 `.env.example`。 diff --git a/server/Dockerfile b/server/Dockerfile index 12bbd19..5ab9373 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -7,11 +7,8 @@ COPY packages/core/ ./packages/core/ COPY web/ ./web/ RUN npm run build --prefix web -FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:10.0-noble-aot AS build WORKDIR /src -RUN apt-get update \ - && apt-get install -y --no-install-recommends clang zlib1g-dev \ - && rm -rf /var/lib/apt/lists/* COPY server/Directory.Build.props ./server/ COPY server/src/WebDrop.Api/WebDrop.Api.csproj ./server/src/WebDrop.Api/ COPY server/src/WebDrop.Core/WebDrop.Core.csproj ./server/src/WebDrop.Core/