Skip to content
Clone

fix(container): build the web stage with pnpm and drop the retired gRPC port

ZhenYi committed
parent 26af08e commit 7cf7ea3 Browse files

2 files changed

+12 −10

File tree 2
Modified deploy/compose.yaml View deploy/compose.yaml
@@ -3,9 +3,9 @@
33# docker compose up -d # 用已有镜像启动
44# docker compose up -d --build # 从仓库根目录 Dockerfile 重新构建
55#
6# 端口:7051 = API(含认证 HTTP/登录页);7022 = 认证 gRPC(当前为空路由,按需加回)。
7# config 里另留了 7052(githost HTTP)与 7053(git SSH)两个口,但当前 apihost
8# 二进制不监听它们(git 读写走 KenShell),改由 KenShell 的 7011/7012 承担。
6# 端口:7051 = API(含登录页)。apihost 只监听这一个端口;
7# config 里残留的 7022(gRPC)/ 7052(githost HTTP)/ 7053(git SSH)均无人监听,
8# git 读写走 KenShell,由 KenShell 的 7011/7012 承担。
99#
1010# 为什么用 host 网络:PostgreSQL / Redis / RustFS / KenShell 都在
1111# 宿主机 127.0.0.1 上(与其它服务一致)。
Modified Dockerfile View Dockerfile
@@ -4,8 +4,8 @@
44# KenApi — GitDataAI 主业务后端(cargo workspace,二进制 kenapi:serve / migrate / openapi)
55#
66# docker build -t kenapi:local .
7# docker run --rm -p 3000:3000 \
8# -e GITDATA_DATABASE__URL=postgres://... kenapi:local
7# docker run --rm -p 7051:7051 \
8# -e APP_DATABASE__URL=postgres://... kenapi:local
99#
1010# 与仓库内其它镜像共用的约定:
1111# * builder 只负责编译,runtime 只带二进制 + 运行期依赖;
@@ -19,13 +19,15 @@
1919
2020FROM node:26-bookworm-slim AS identity-web
2121WORKDIR /web
22COPY package.json package-lock.json ./
23RUN npm ci
22# 前端由 pnpm 管理(pnpm-workspace.yaml / pnpm-lock.yaml);Node 25 起不再自带 corepack。
23RUN npm install -g pnpm@12
24COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
25RUN pnpm install --frozen-lockfile
2426COPY view ./view
2527COPY packages ./packages
2628COPY vite.config.ts tsconfig.json tsconfig.app.json tsconfig.node.json \
2729 orval.config.ts steiger.config.ts biome.json ./
28RUN npm run build
30RUN pnpm build
2931
3032# ---------------------------------------------------------------------------
3133# builder
@@ -100,14 +102,14 @@
100102COPY --from=builder /out/kenapi /usr/local/bin/
101103
102104LABEL org.opencontainers.image.title="KenApi" \
103 org.opencontainers.image.description="GitDataAI monolith: business API, identity, gRPC and email" \
105 org.opencontainers.image.description="GitDataAI monolith: business API and login web" \
104106 org.opencontainers.image.version="1.0.0"
105107
106108ENV RUST_BACKTRACE=0
107109
108110USER gitdata
109111
110EXPOSE 7051 7022
112EXPOSE 7051
111113STOPSIGNAL SIGTERM
112114
113115HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \