v0.15.0: Docker 化部署(OVH-US-BAK)
- Dockerfile(oven/bun 多阶段:构建 dist + 全量 node_modules 运行时) - deploy/docker-compose.yml(postgres:18 + app,uploads 双挂载同宿主目录) - .dockerignore(uploads 经卷挂载不进镜像,避免 3GB 膨胀) - prod-server /uploads/* 运行时直读磁盘(媒体上传后无需重启即可访问,含路径穿越防护) - README Docker 部署章节
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# dusuniot 生产部署编排(放在 /home/docker/dusuniot/ 下使用,源码 rsync 到 ./app)
|
||||
# 用法:docker compose up -d --build
|
||||
name: dusuniot
|
||||
services:
|
||||
# # 数据库服务 PostgreSQL 18(数据落 ./data/pg,不对外暴露端口)
|
||||
db:
|
||||
image: postgres:18
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_USER: dusuniot
|
||||
POSTGRES_PASSWORD: dusuniot
|
||||
POSTGRES_DB: dusuniot
|
||||
volumes:
|
||||
- ./data/pg:/var/lib/postgresql
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U dusuniot -d dusuniot"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
|
||||
# # 应用服务 TanStack Start + Bun(nginx 反代 127.0.0.1:3320)
|
||||
app:
|
||||
build: ./app
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
DATABASE_URL: postgres://dusuniot:dusuniot@db:5432/dusuniot
|
||||
PORT: "3312"
|
||||
ports:
|
||||
- "127.0.0.1:3320:3312"
|
||||
volumes:
|
||||
# 双挂载同一宿主目录:adminUploadMedia 写 public/uploads(cwd 相对),
|
||||
# prod-server 的 /uploads 直读与启动静态表走 dist/client/uploads
|
||||
- ./data/uploads:/app/public/uploads
|
||||
- ./data/uploads:/app/dist/client/uploads
|
||||
Reference in New Issue
Block a user