Files
blog/write-server/docker-compose.yml
T
2026-06-21 23:58:29 +08:00

86 lines
1.9 KiB
YAML

# Write Server Docker Compose Configuration
# 用于生产环境部署
version: '3.8'
services:
write-server:
build:
context: .
dockerfile: Dockerfile
container_name: write-server
restart: unless-stopped
ports:
- "8016:8016"
- "1313:1313"
volumes:
# Hugo 博客目录(必须)- 映射宿主机博客根目录到容器内 /blog
- ..:/blog
# 本地回收站目录
- ./recycle:/app/recycle
# 日志目录
- ./logs:/app/logs
# 备份目录
- ./backups:/app/backups
# 环境变量文件
- ./.env:/app/.env:ro
environment:
- NODE_ENV=production
- PORT=8016
- BLOG_ROOT=/blog
- TZ=Asia/Shanghai
networks:
- write-network
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8016/api/stats"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# 可选:Nginx 反向代理
nginx:
image: nginx:alpine
container_name: write-nginx
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/conf.d:/etc/nginx/conf.d:ro
- ./nginx/ssl:/etc/nginx/ssl:ro
- ./.htpasswd:/etc/nginx/.htpasswd:ro
- ./nginx/login.html:/etc/nginx/login.html:ro
- ./nginx/sw.js:/etc/nginx/sw.js:ro
- ./logs/nginx:/var/log/nginx
depends_on:
write-server:
condition: service_started
networks:
- write-network
# 可选:Redis 缓存
# redis:
# image: redis:7-alpine
# container_name: write-redis
# restart: unless-stopped
# ports:
# - "6379:6379"
# volumes:
# - redis-data:/data
# networks:
# - write-network
networks:
write-network:
driver: bridge
# volumes:
# redis-data: