chore(deps): 统一依赖管理 - pnpm 11 + node:22 + golang:1.25 + python:3.12 + shared-* 集中化
- Node.js 统一到 node:22-alpine,Go 统一到 golang:1.25-alpine,Python 统一到 python:3.12-slim - pnpm 升级到 11.13.0(corepack),新增 allowBuilds 白名单解决 ERR_PNPM_IGNORED_BUILDS - 新增 packages/shared-py 集中 Python 共享依赖,shared-ts 补充 graphql-yoga/prom-client - api-gateway 修复 go.mod 的 shared-go 依赖 + Dockerfile 改用 repo 根作 context - Python 服务(data-ana/ai)Dockerfile 改用 repo 根作 context + 声明 uv workspace sources - 16 个服务的 Dockerfile + CI + docker-compose.tools.yml 全部对齐版本矩阵 - known-issues.md 沉淀 9 条 pnpm 11 / uv workspace / Go shared-go 迁移经验 - 验证:4 服务完全成功(api-gateway /healthz 200),其余 install 成功(build 失败为预存 TS 错误)
This commit is contained in:
@@ -2,20 +2,25 @@
|
||||
# 用法:docker build -t edu/api-gateway:latest -f services/api-gateway/Dockerfile .
|
||||
|
||||
# ============ Builder ============
|
||||
FROM golang:1.22-alpine AS builder
|
||||
FROM golang:1.25-alpine AS builder
|
||||
WORKDIR /app
|
||||
|
||||
# git 与 ca-certificates 为 go mod 下载所需
|
||||
RUN apk add --no-cache git ca-certificates
|
||||
|
||||
# 先拷依赖清单利用缓存
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
# 先拷依赖清单利用缓存(shared-go + api-gateway)
|
||||
COPY packages/shared-go/go.mod ./packages/shared-go/
|
||||
COPY services/api-gateway/go.mod services/api-gateway/go.sum ./services/api-gateway/
|
||||
ENV GOPROXY=https://goproxy.cn,direct
|
||||
RUN cd services/api-gateway && go mod download
|
||||
|
||||
# 拷源码并构建
|
||||
COPY . .
|
||||
# 静态编译,CGO_DISABLED 便于 alpine 运行
|
||||
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /app/bin/api-gateway ./main.go
|
||||
COPY services/api-gateway ./services/api-gateway
|
||||
COPY packages/shared-go ./packages/shared-go
|
||||
RUN cd services/api-gateway && CGO_ENABLED=0 GOOS=linux go build \
|
||||
-ldflags="-s -w" \
|
||||
-o /app/bin/api-gateway \
|
||||
./main.go
|
||||
|
||||
# ============ Runtime ============
|
||||
FROM alpine:3.20 AS runner
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
module github.com/edu-cloud/api-gateway
|
||||
|
||||
go 1.22
|
||||
go 1.25.0
|
||||
|
||||
require (
|
||||
github.com/edu-cloud/shared-go v0.0.0
|
||||
github.com/gin-gonic/gin v1.12.0
|
||||
github.com/golang-jwt/jwt/v5 v5.2.1
|
||||
github.com/google/uuid v1.6.0
|
||||
@@ -14,6 +15,8 @@ require (
|
||||
go.opentelemetry.io/otel/sdk v1.44.0
|
||||
)
|
||||
|
||||
replace github.com/edu-cloud/shared-go => ../../packages/shared-go
|
||||
|
||||
require (
|
||||
github.com/beorn7/perks v1.0.1 // indirect
|
||||
github.com/bytedance/gopkg v0.1.4 // indirect
|
||||
|
||||
Reference in New Issue
Block a user