chore: add local docker validation workflow

This commit is contained in:
2026-05-26 14:48:12 +08:00
parent ef9b8312ec
commit 8d5311c60a
10 changed files with 304 additions and 3 deletions

View File

@@ -523,6 +523,16 @@
<tr><th>项目</th><th>命令 / 入口</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td>本地 Docker 启动</td>
<td><code>./scripts/start-local-docker.sh</code></td>
<td>生产前默认本地验收入口;使用 <code>docker-compose.local.yml</code> 构建 Web / API / Postgres默认 Web 为 <code>http://localhost:4390</code>API 为 <code>http://localhost:4391</code>,本地数据写入 <code>data-local/</code>。首次启动会从 <code>deploy/.env.local.example</code> 生成不入库的 <code>deploy/.env.local</code>,本地登录默认 <code>skg / local-skg</code></td>
</tr>
<tr>
<td>本地 Docker 验证</td>
<td><code>./scripts/verify-local-docker.sh</code></td>
<td>检查本地 Docker 容器、登录页、未登录 API 保护和容器内 <code>/health</code> + Postgres 连接。以后代码改动先通过本地 Docker 验证并形成本地 commit只有用户明确确认后才推送 Gitea 或执行生产部署。</td>
</tr>
<tr>
<td>本地后台启动</td>
<td><code>./scripts/start-dev-background.sh</code></td>
@@ -546,7 +556,7 @@
<tr>
<td>生产部署</td>
<td><code>./scripts/deploy-prod-safe.sh</code></td>
<td>服务器目录为 <code>/opt/skg-marketing-studio</code>;后端任务文件挂载到 <code>./data/jobs</code>,全局资源中心挂载到 <code>./data/asset_library</code><code>./data/prompt_library</code><code>./data/_trash</code>Postgres 数据目录为 <code>./data/postgres</code>,真实 Key 和数据库密码只放服务器 <code>deploy/.env.production</code>。生产部署唯一入口是 <code>deploy-prod-safe.sh</code>:先备份服务器 env、案例、资源库和 secrets如 Postgres 容器存在则额外导出 <code>pg_dump</code>,再用 protect/exclude 保护 <code>data/</code><code>jobs/</code><code>secrets/</code><code>deploy/.env.production</code> 后同步代码,最后 Docker 重建并跑 <code>verify-prod-docker.sh</code>。禁止再用裸 <code>rsync --delete</code> 手动同步。</td>
<td>服务器目录为 <code>/opt/skg-marketing-studio</code>;后端任务文件挂载到 <code>./data/jobs</code>,全局资源中心挂载到 <code>./data/asset_library</code><code>./data/prompt_library</code><code>./data/_trash</code>Postgres 数据目录为 <code>./data/postgres</code>,真实 Key 和数据库密码只放服务器 <code>deploy/.env.production</code>。生产部署唯一入口是 <code>deploy-prod-safe.sh</code>:先备份服务器 env、案例、资源库和 secrets如 Postgres 容器存在则额外导出 <code>pg_dump</code>,再用 protect/exclude 保护 <code>data/</code><code>jobs/</code><code>secrets/</code><code>deploy/.env.production</code> 后同步代码,最后 Docker 重建并跑 <code>verify-prod-docker.sh</code>。禁止再用裸 <code>rsync --delete</code> 手动同步;未得到用户明确确认前,不推送 Gitea、不部署生产</td>
</tr>
<tr>
<td>前端开发服务</td>
@@ -1391,6 +1401,18 @@ ProductRefStateItem {
<p><strong>影响:</strong>画布项目开始具备跨浏览器、跨设备恢复的服务端主存储;默认仍按 owner 私有隔离,后续可在同一表上扩展 team/company 可见性。完整 job state 和媒体文件仍保留在原有文件目录,避免把大文件一次性搬进数据库。</p>
</div>
</article>
<article class="change">
<header>
<h3>2026-05-26 · 本地 Docker 先验收再上推</h3>
<span class="tag amber">Ops</span>
<span class="tag blue">Docs</span>
</header>
<div class="body">
<p><strong>问题:</strong>此前代码修改常直接走生产部署验证,容易把还在反复调整的模型、尺寸或界面配置带到线上,影响正在使用的团队成员。</p>
<p><strong>改动:</strong>新增 <code>docker-compose.local.yml</code><code>deploy/.env.local.example</code><code>scripts/start-local-docker.sh</code><code>scripts/verify-local-docker.sh</code><code>scripts/stop-local-docker.sh</code>。本地 Docker 默认暴露 <code>localhost:4390</code>,使用独立 <code>data-local/</code> 和本地 Postgres不读取生产 <code>deploy/.env.production</code></p>
<p><strong>影响:</strong>后续开发流程改为“本地 Docker 启动 → 本地验证 → 本地 commit → 用户确认后才推送/部署”。<code>AGENTS.md</code><code>RULES.md</code> 已同步该约束,避免后续接手会话自动推送或直接上生产。</p>
</div>
</article>
<article class="change">
<header>
<h3>2026-05-26 · 恢复最初生图配置</h3>