version: '3.8'
services:
# PostgreSQL 数据库
panda-wiki-postgres:
image: postgres:15-alpine
container_name: panda-wiki-postgres
environment:
POSTGRES_DB: panda-wiki
POSTGRES_USER: panda-wiki
POSTGRES_PASSWORD: panda-wiki-secret
TZ: Asia/Shanghai
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
networks:
- panda-wiki-network
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U panda-wiki -d panda-wiki"]
interval: 10s
timeout: 5s
retries: 5
# Redis 缓存
panda-wiki-redis:
image: redis:7-alpine
container_name: panda-wiki-redis
command: redis-server --requirepass redis-secret
environment:
TZ: Asia/Shanghai
volumes:
- redis_data:/data
ports:
- "6379:6379"
networks:
- panda-wiki-network
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "-a", "redis-secret", "ping"]
interval: 10s
timeout: 5s
retries: 5
# NATS 消息队列
panda-wiki-nats:
image: nats:2.10-alpine
container_name: panda-wiki-nats
command: [
"--jetstream",
"--store_dir=/data",
"--user=panda-wiki",
"--pass=nats-secret",
"--http_port=8222"
]
environment:
TZ: Asia/Shanghai
volumes:
- nats_data:/data
ports:
- "4222:4222"
- "8222:8222"
networks:
panda-wiki-network:
ipv4_address: 169.254.15.13
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8222/varz"]
interval: 30s
timeout: 10s
retries: 5
start_period: 40s
# MinIO 对象存储
panda-wiki-minio:
image: minio/minio:latest
container_name: panda-wiki-minio
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin123
TZ: Asia/Shanghai
volumes:
- minio_data:/data
ports:
- "9000:9000"
- "9001:9001"
networks:
panda-wiki-network:
ipv4_address: 169.254.15.12
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 10s
timeout: 5s
retries: 5
# RAG服务 - Qdrant向量数据库
panda-wiki-raglite:
image: qdrant/qdrant:latest
container_name: panda-wiki-raglite
environment:
TZ: Asia/Shanghai
ports:
- "8080:6333"
volumes:
- qdrant_data:/qdrant/storage
networks:
panda-wiki-network:
ipv4_address: 169.254.15.18
restart: unless-stopped
# 后端 API 服务
panda-wiki-api:
build:
context: ./backend
dockerfile: Dockerfile.api
args:
VERSION: "0.9.3"
container_name: panda-wiki-api
command: sleep infinity
environment:
POSTGRES_PASSWORD: panda-wiki-secret
REDIS_PASSWORD: redis-secret
NATS_PASSWORD: nats-secret
SUBNET_PREFIX: "169.254.15"
QDRANT_URL: "http://panda-wiki-raglite:6333" # 使用服务名
TZ: Asia/Shanghai
ports:
- "8000:8000"
networks:
- panda-wiki-network
depends_on:
panda-wiki-postgres:
condition: service_healthy
panda-wiki-redis:
condition: service_healthy
panda-wiki-nats:
condition: service_healthy
panda-wiki-minio:
condition: service_healthy
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
# 后端消费者服务
panda-wiki-consumer:
build:
context: ./backend
dockerfile: Dockerfile.consumer
container_name: panda-wiki-consumer
environment:
POSTGRES_PASSWORD: panda-wiki-secret
REDIS_PASSWORD: redis-secret
NATS_PASSWORD: nats-secret
SUBNET_PREFIX: "169.254.15"
TZ: Asia/Shanghai
networks:
- panda-wiki-network
depends_on:
panda-wiki-postgres:
condition: service_healthy
panda-wiki-redis:
condition: service_healthy
panda-wiki-nats:
condition: service_healthy
panda-wiki-minio:
condition: service_healthy
restart: unless-stopped
# 前端管理界面
panda-wiki-admin:
build:
context: ./web/admin
dockerfile: Dockerfile.admin
shm_size: '2gb'
container_name: panda-wiki-admin
ports:
- "2443:80"
networks:
- panda-wiki-network
depends_on:
- panda-wiki-api
restart: unless-stopped
deploy:
resources:
limits:
memory: 6G
reservations:
memory: 2G
# 前端用户界面
panda-wiki-app:
build:
context: ./web/app
dockerfile: Dockerfile.app
shm_size: '2gb'
container_name: panda-wiki-app
ports:
- "3010:3010"
networks:
- panda-wiki-network
depends_on:
- panda-wiki-api
restart: unless-stopped
environment:
NODE_ENV: production
PORT: 3010
HOSTNAME: "0.0.0.0"
deploy:
resources:
limits:
memory: 6G
reservations:
memory: 2G
volumes:
postgres_data:
driver: local
redis_data:
driver: local
nats_data:
driver: local
minio_data:
driver: local
qdrant_data: # 添加这个卷定义
driver: local
networks:
panda-wiki-network:
driver: bridge
ipam:
config:
- subnet: 169.254.15.0/24
======================
这里还用到了 web/admin/Dockerfile.admin和web/app/Dockerfile.app,也一并放在以下的网盘中。
通过网盘分享的文件:389.pandawiki三个配置文件.rar
链接: https://pan.baidu.com/s/1hQNhS70sVCvXzZxZ4RHN9w 提取码: 3vex
三、现在的没解决问题
查看所有容器,
打开主页:
但,在输入帐号/密码时,出现:Bad Gateway错误
排查,发现:
panda-wiki-api容器不正常。
就这个问题,一直没有解决掉,希望各位能帮我解决掉。
其它的,我不截图了,反正是改来改去,都没解决好。
原文始发于微信公众号(MicroPest):PandaWiki搭建过程(一)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论