- 根目录新增 package.json(workspaces: client、server),两边共用一个 bun.lock, 依赖版本与原来两个 lockfile 完全一致 - 根目录脚本:bun run dev / build / build:staging / test / typecheck / fmt, 取代 dev.sh;client 的 start 改名为 dev,包名改为 webpreview-client - workspaces 用 isolated 安装,补上 client 一直直接 import 却没声明的 @codemirror/view - server 镜像改用仓库根目录做构建上下文,只装 server 的依赖; .dockerignore 用白名单,不再把 node_modules、数据库等发给 docker - CI 在根目录安装并构建前端 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
39 lines
938 B
YAML
39 lines
938 B
YAML
services:
|
|
webpreview-web:
|
|
image: caddy:alpine
|
|
container_name: webpreview-web
|
|
volumes:
|
|
- ./build:/usr/share/caddy:ro
|
|
- ./media:/media
|
|
- ./Caddyfile:/etc/caddy/Caddyfile:ro
|
|
ports:
|
|
- 8081:80
|
|
depends_on:
|
|
- webpreview-api
|
|
restart: unless-stopped
|
|
|
|
webpreview-api:
|
|
build:
|
|
context: .
|
|
dockerfile: server/Dockerfile
|
|
container_name: webpreview-api
|
|
env_file:
|
|
- .env
|
|
volumes:
|
|
- ./sqlite:/app/data
|
|
- ./media:/app/media
|
|
restart: unless-stopped
|
|
|
|
# 只在从旧版 Postgres 迁移数据时使用:
|
|
# docker compose --profile migrate up -d webpreview-db
|
|
# docker compose run --rm webpreview-api bun scripts/migrate-from-postgres.ts
|
|
webpreview-db:
|
|
image: postgres:17-alpine
|
|
container_name: webpreview-db
|
|
profiles: ["migrate"]
|
|
volumes:
|
|
- ./data:/var/lib/postgresql/data
|
|
env_file:
|
|
- .env
|
|
restart: "no"
|