00 / 00
Docker 部署
把 01MVP Node 产物部署到容器平台,并选择 D1 代理或普通 SQLite。
根目录 Dockerfile 会构建 @01mvp/web 并运行生产 Node 产物。镜像不包含数据库 migration,也不需要构建期数据库连接。
使用远端 D1
容器运行时配置:
BETTER_AUTH_SECRET=<long-random-secret>
VITE_WEB_URL=https://example.com
VITE_SERVER_URL=https://example.com
D1_PROXY_URL=https://<cloudflare-domain>/_internal/d1
D1_PROXY_TOKEN=<server-only-random-token>先通过 Wrangler 把 migration 应用到 D1,再发布镜像。应用启动不会自动修改生产 schema。
构建和运行
docker build -t my-01mvp-app .
docker run --rm -p 3001:3001 --env-file .env.production my-01mvp-app不要把真实 secret 作为 build arg。.env.production 不应提交到仓库。
国内普通 SQLite
D1 是 Cloudflare 服务,完全在国内自托管时应增加普通 SQLite 运行时适配器,而不是从国内服务器远程访问 D1。Schema 和 migration 已保持 SQLite 语义;部署侧还需要:
- 把数据库文件放在持久卷。
- 明确单写节点,避免多个容器同时写不同副本。
- 定时做一致性备份并验证恢复。
- 在发布新容器前显式执行 migration。
不要只把 SQLite 文件写进容器可写层;容器重建后数据会丢失。
验证
curl -fsS http://localhost:3001/api/health
curl -I http://localhost:3001/
curl -I http://localhost:3001/auth/login再验证登录、后台和目标产品保留的业务功能。
这篇文档有问题?