diff --git a/.github/workflows/riscv64-images.yml b/.github/workflows/riscv64-images.yml index 0ebae695..6fb9d6bc 100644 --- a/.github/workflows/riscv64-images.yml +++ b/.github/workflows/riscv64-images.yml @@ -4,6 +4,7 @@ on: pull_request: paths: - '.github/workflows/riscv64-images.yml' + - '.github/workflows/publish-images.yml' - 'server/**' - 'web/**' workflow_dispatch: diff --git a/README.md b/README.md index 277e775e..a5c0fb36 100644 --- a/README.md +++ b/README.md @@ -236,7 +236,9 @@ frontend schema, and fails if the checked-in SDK is stale. Published runtime images are built by GitHub Actions and pushed to GHCR. This is the supported path for anyone who wants a ready-to-use local environment without building the backend or frontend on their machine. -Published images target both `linux/amd64` and `linux/arm64`. +Published server and web images target `linux/amd64`, `linux/arm64`, and +`linux/riscv64`; the scanner image currently targets `linux/amd64` and +`linux/arm64`. **Quick deployment with curl:** diff --git a/docs/01-system-architecture.md b/docs/01-system-architecture.md index 54b15cbb..fc587602 100644 --- a/docs/01-system-architecture.md +++ b/docs/01-system-architecture.md @@ -136,7 +136,8 @@ skillhub/ - 开发路径:`make dev-all`。前后端在宿主机运行,`docker-compose.yml` 只负责 PostgreSQL、Redis、MinIO。 - 交付路径:GitHub Actions 构建并发布 `server` / `web` 镜像;用户通过 `compose.release.yml` 在本地一键拉起前后端容器和基础服务。 -- 发布镜像为多架构 manifest,至少覆盖 `linux/amd64` 与 `linux/arm64`。 +- 发布镜像为多架构 manifest:`server` / `web` 覆盖 `linux/amd64`、`linux/arm64` 与 + `linux/riscv64`;`scanner` 暂保持 `linux/amd64` 与 `linux/arm64`。 单机运行时统一入口: - `http://localhost/` → Web 容器(Nginx) @@ -169,7 +170,8 @@ skillhub/ - 数据库迁移:Flyway - 认证:Spring Security OAuth2 Client(一期 GitHub) - 镜像发布:GitHub Actions 推送至 GHCR,默认维护 `edge` 与语义化版本标签 -- 运行时兼容:发布镜像默认输出 `linux/amd64` + `linux/arm64` 多架构 manifest +- 运行时兼容:`server` / `web` 发布镜像默认输出 `linux/amd64` + `linux/arm64` + + `linux/riscv64` 多架构 manifest,`scanner` 暂保持 `linux/amd64` + `linux/arm64` ## 11. Repository / Query Boundary 约定 diff --git a/docs/09-deployment.md b/docs/09-deployment.md index 3b67a771..332a79bc 100644 --- a/docs/09-deployment.md +++ b/docs/09-deployment.md @@ -10,7 +10,8 @@ - 单机交付环境:`docker compose --env-file .env.release -f compose.release.yml up -d` - 前端和后端都运行在容器内 - 使用 GitHub Actions 发布到 GHCR 的镜像 -- 默认发布 `linux/amd64` 与 `linux/arm64` 多架构镜像 +- 默认发布多架构镜像:`server` / `web` 覆盖 `linux/amd64`、`linux/arm64` 与 + `linux/riscv64`,`scanner` 暂保持 `linux/amd64` 与 `linux/arm64` - PostgreSQL、Redis 与应用容器一起通过 Compose 启动 不再维护本地构建整套 demo 容器的中间模式,也不再保留 `docker-compose.prod.yml`。 @@ -205,7 +206,8 @@ Sentinel 配置优先于 Cluster 和单机 `host`/`port`。在 Kubernetes 等 Se - `ghcr.io/iflytek/skillhub-server` - `ghcr.io/iflytek/skillhub-web` 5. 写入 `edge` / `vX.Y.Z` / `latest` / `sha-*` 标签 -6. 同时发布 `linux/amd64` 与 `linux/arm64` manifest,避免 Apple Silicon / ARM 主机依赖模拟层 +6. 同时发布多架构 manifest:`server` / `web` 覆盖 `linux/amd64`、`linux/arm64` 与 + `linux/riscv64`,`scanner` 暂保持 `linux/amd64` 与 `linux/arm64` ## 7 配置管理 diff --git a/server/Dockerfile b/server/Dockerfile index ee36e492..bfd02cd1 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -1,5 +1,3 @@ -# syntax=docker/dockerfile:1 - # Build the architecture-neutral JAR on the Buildx host. This avoids emulating # the complete Maven build when the target image is linux/riscv64. FROM --platform=$BUILDPLATFORM eclipse-temurin:21-jdk-alpine AS build diff --git a/web/Dockerfile b/web/Dockerfile index e46855db..bf8f1fb0 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -1,5 +1,3 @@ -# syntax=docker/dockerfile:1 - # The frontend output is static and architecture-neutral. Build it on the # Buildx host so linux/riscv64 does not depend on a target-architecture Node.js # image; only the multi-architecture Nginx runtime is target-specific.