-
Notifications
You must be signed in to change notification settings - Fork 55
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
115 lines (109 loc) · 3.1 KB
/
docker-compose.yml
File metadata and controls
115 lines (109 loc) · 3.1 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# PixelPunk Docker Compose 配置
#
# 🚀 推荐使用一键安装脚本(自动配置所有参数):
# curl -fsSL https://download.pixelpunk.cc/shell/docker-install.sh | bash
#
# 💡 也可以直接运行(将使用默认配置):
# docker-compose up -d
#
# 注意:直接运行将使用默认数据库密码,生产环境请修改 docker-compose.yml 的环境变量
version: '3.8'
services:
# PixelPunk 主应用
pixelpunk:
image: snine98/pixelpunk:latest
container_name: pixelpunk
ports:
- "${PORT:-9520}:9520"
volumes:
- ./configs/config.docker.yaml:/app/configs/config.yaml:ro
- ${DATA_DIR:-./data}:/app/data
- ${LOGS_DIR:-./logs}:/app/logs
- ${UPLOADS_DIR:-./uploads}:/app/uploads
environment:
- TZ=Asia/Shanghai
- DEPLOY_MODE=compose
- CONFIG_PRESET=true
- APP_PORT=9520
depends_on:
mysql:
condition: service_healthy
qdrant:
condition: service_started
redis:
condition: service_started
restart: unless-stopped
networks:
- pixelpunk-network
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:9520/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# MySQL 数据库
mysql:
image: mysql:8.0
container_name: pixelpunk-mysql
environment:
MYSQL_ROOT_PASSWORD: root_password_change_me
MYSQL_DATABASE: pixelpunk
MYSQL_USER: pixelpunk
MYSQL_PASSWORD: pixelpunk_pass
TZ: Asia/Shanghai
# 端口不对外暴露,仅容器内部访问
# ports:
# - "${MYSQL_PORT:-3306}:3306"
volumes:
- ${MYSQL_DATA_DIR:-./data/mysql}:/var/lib/mysql
command: >
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
--default-authentication-plugin=mysql_native_password
restart: unless-stopped
networks:
- pixelpunk-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "pixelpunk", "-ppixelpunk_pass"]
interval: 10s
timeout: 5s
retries: 5
# Qdrant 向量数据库
qdrant:
image: qdrant/qdrant:latest
container_name: pixelpunk-qdrant
# 端口不对外暴露,仅容器内部访问
# ports:
# - "${QDRANT_PORT:-6333}:6333"
# - "${QDRANT_GRPC_PORT:-6334}:6334"
volumes:
- ${QDRANT_DATA_DIR:-./data/qdrant}:/qdrant/storage
environment:
- TZ=Asia/Shanghai
restart: unless-stopped
networks:
- pixelpunk-network
# Redis 缓存(可选)
redis:
image: redis:7-alpine
container_name: pixelpunk-redis
# 端口不对外暴露,仅容器内部访问
# ports:
# - "${REDIS_PORT:-6379}:6379"
volumes:
- ${REDIS_DATA_DIR:-./data/redis}:/data
environment:
- TZ=Asia/Shanghai
command: redis-server --appendonly yes
restart: unless-stopped
networks:
- pixelpunk-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 5
# 网络配置
networks:
pixelpunk-network:
driver: bridge