docs: 迁 CNB 前的架构决策文档 + 构建骨架

- 决策文档:架构总览 / 代码源与构建平台选型 / CNB构建落地方案 /
  EdgeOne双区域 / Gitee / 阿里云ESA / 精简方案
- CNB 构建骨架:deploy/Dockerfile、bin/linux/hugo
  (84MB,linux/amd64 extended 0.128.2,供 CNB 容器 COPY 用)
- scripts/setup-cnb-remotes.sh:双远端切换(CNB 主仓 + GitHub 备份)
- .gitignore 补 .workbuddy/(工作数据不入库)
This commit is contained in:
zqlit committed 2026-10-04 12:40:17 +08:00
1 parent 1f568bbfd1
commit e0218b42bb
14 files changed
+1993 -4

No files matched your search

+47
View File
@@ -0,0 +1,47 @@
# CNB 构建环境:固定 hugo 0.128.2 extended(与现网一致)+ 又拍云 upx + EdgeOne CLI
#
# ★ 为什么 hugo 二进制随仓库携带,而不是构建时在线下载:
# 实测国内节点直连 github.com 拉这 22MB 的 release 需要 127 秒(本机仅 7 秒),
# 而这是每次构建都要付的成本。随仓库携带后构建零跨境下载、100% 可复现。
# 二进制体积 84MB,进 git 后仅 24MB(zlib),对 CNB 100GiB 免费额度可忽略。
#
# ★ 注意架构:CNB 构建节点是 linux/amd64。
# 本机 E:\Hugo\hugo.exe 是 windows/amd64,在容器里跑不了(会报 cannot execute
# binary file),所以必须是 linux 版。文件在 bin/linux/hugo。
FROM node:22-bookworm-slim
# ★ 换国内 apt 源:CNB 官方只明示加速「Docker / NPM / Maven 镜像」,
# Debian 的默认 apt 源(deb.debian.org)不在承诺范围内,而构建节点在国内,
# 直连默认源可能慢或超时 → 换成阿里云镜像兜底。
# bookworm 镜像存在两代源文件格式(旧 /etc/apt/sources.list 与
# 新 deb822 /etc/apt/sources.list.d/debian.sources),两个都改,避免格式差异踩空。
RUN set -eux; \
for f in /etc/apt/sources.list /etc/apt/sources.list.d/debian.sources; do \
if [ -f "$f" ]; then \
sed -i -e 's|deb.debian.org|mirrors.aliyun.com|g' \
-e 's|security.debian.org|mirrors.aliyun.com|g' "$f"; \
fi; \
done; \
apt-get update && apt-get install -y --no-install-recommends \
ca-certificates curl tar zstd python3 xz-utils git \
&& rm -rf /var/lib/apt/lists/*
# Hugo extended 0.128.2(linux/amd64),随仓库提供
COPY bin/linux/hugo /usr/local/bin/hugo
RUN chmod +x /usr/local/bin/hugo && hugo version
# 又拍云 upx(源在国内 CDN,直连稳定,保留在线安装)
RUN set -eux; \
curl -fsSL -o /tmp/upx.tgz \
"https://collection.b0.upaiyun.com/softwares/upx/upx_0.4.9_linux_amd64.tar.gz"; \
tar -xzf /tmp/upx.tgz -C /usr/local/bin upx; \
chmod +x /usr/local/bin/upx; \
rm /tmp/upx.tgz; \
upx --version | head -1
# EdgeOne CLI(用于境内外两个 Pages 项目部署)
RUN npm i -g edgeone@latest
WORKDIR /workspace
CMD ["hugo", "version"]