1. -trimpath(抹除源码绝对路径)
- Dockerfile: go build 加 -trimpath
- run.sh: 两处 go build 加 -trimpath
效果:二进制内 /app/backend/ 绝对路径命中 66 → 0(module 相对路径 sql-platform/ 仍保留,
那是 Go 的正常行为,-trimpath 只去绝对前缀)
2. 镜像
- kubernetes/deployment.yaml: opsxsql:latest → lghost/opsxsql:latest
- kubernetes/install.sh: 默认 IMAGE 改 lghost/opsxsql:latest
- 已构建并推送:lghost/opsxsql:latest (digest 70562a408cae, 25.2MB)
3. K8s 部署验证(namespace: sql)
- Deployment opsxsql 1/1 Running,0 重启
- Pod: opsxsql-695444d6b9-chrzp (node 172.19.0.161)
- Service opsxsql.sql.svc.cluster.local:80
- PVC opsxsql-data Bound 10Gi (cbs)
- Secret opsxsql-secrets 自动生成(SECRET_KEY / JWT_SECRET)
- /health → {"backend":"go","status":"ok","version":"0.4.0"}
- 首页正常,seed 完成(26 条审核规则 + LDAP 默认配置)
部署命令:bash kubernetes/install.sh
15 lines
507 B
YAML
15 lines
507 B
YAML
# 只做模板:不要提交真实密钥。
|
|
# 推荐直接用命令创建(避免密钥落盘到 Git;install.sh 已自动处理):
|
|
# kubectl -n opsxsql create secret generic opsxsql-secrets \
|
|
# --from-literal=SECRET_KEY="$(openssl rand -hex 32)" \
|
|
# --from-literal=JWT_SECRET="$(openssl rand -hex 32)"
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
name: opsxsql-secrets
|
|
namespace: sql
|
|
type: Opaque
|
|
stringData:
|
|
SECRET_KEY: "REPLACE_WITH_32_BYTES_HEX"
|
|
JWT_SECRET: "REPLACE_WITH_32_BYTES_HEX"
|