-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
59 lines (52 loc) · 1.87 KB
/
docker-compose.yml
File metadata and controls
59 lines (52 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# ============================================
# Docker Compose 配置 - D.Will Blog
# 使用方法:docker-compose up -d --build
# ============================================
version: '3.8'
services:
blog:
build:
context: .
dockerfile: Dockerfile
container_name: astris-blog
restart: unless-stopped
ports:
# 9527 映射到 Astro 前端 (4321) - 博客页面
- "9527:4321"
# 9528 映射到 FastAPI 后端 (8000) - API 和管理后台
- "9528:8000"
volumes:
# 持久化数据库
- ./data:/app/data
# 持久化上传文件
- ./uploads:/app/uploads
# 持久化前端 Banner 图片(可通过管理后台上传)
- ./client/public/assets/desktop-banner:/app/client/public/assets/desktop-banner
- ./client/public/assets/mobile-banner:/app/client/public/assets/mobile-banner
# 持久化前端图片
- ./client/public/images:/app/client/public/images
environment:
# 应用配置
- APP_NAME=${APP_NAME:-Astris Blog}
- DEBUG=${DEBUG:-false}
# 数据库 (容器内路径)
- DATABASE_URL=${DATABASE_URL:-sqlite+aiosqlite:///./data/blog.db}
# JWT 密钥 (必须修改!)
- SECRET_KEY=${SECRET_KEY:?请在 .env 文件中设置 SECRET_KEY}
# 管理员账户 (必须修改!)
- ADMIN_USERNAME=${ADMIN_USERNAME:-admin}
- ADMIN_PASSWORD=${ADMIN_PASSWORD:?请在 .env 文件中设置 ADMIN_PASSWORD}
# CORS 配置 (改为你的域名)
- CORS_ORIGINS=${CORS_ORIGINS:-https://dwill.top,https://blog.dwill.top}
networks:
- backend
healthcheck:
test: [ "CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/api/health')" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
# 使用与其他服务相同的网络
networks:
backend:
external: true