Files
cunkebao_v3/docker-compose.yml
Manus AI 2753265edb sync(本地→GitHub): 2026-06-03 21:17 全量单向同步
## GitHub 同步说明

| 项 | 内容 |
|:---|:---|
| 仓库 | https://github.com/fnvtk/cunkebao_v3 |
| 分支 | develop |
| 方向 | 本地 → GitHub(单向 push) |
| 是否拉取远程 | 否(未 fetch / pull / merge) |
| 是否改本地源文件 | 否(仅 git add/commit,未编辑业务/文档正文) |
| 远程基准 | origin/develop @ b5b40e8b |
| 本批工作区变更 | 999 files, +47622 / -4007 lines |

## 一并推送的本地已有 commit(此前未 push)

1. 3aa7ecf8 deploy: 官网 ckb.quwanzhi.com 宝塔上线 DNS+SSL+验收文档
2. 16a70045 fix(官网): 桌面导航仅保留一个留资 CTA 并重新上线
3. dbe7b7aa fix(官网): Hero 改为主 CTA 按钮并去掉重复 1200+ 数据条
4. ac82726e chore(部署): 五端上线验收46项并统一留资与缓存版本

## 本 commit 目录统计

| 目录 | 文件数 | 说明 |
|:---|---:|:---|
| 开发文档/ | 639 | 10、项目管理、未完成项跨仓汇总、五端需求/部署/接口 |
| Server/ | 129 | 后端 API、迁移、部署相关 |
| Touchkebao/ | 80 | PC 工作台、获客、算力 |
| 官网/ | 61 | ckb.quwanzhi.com 静态站与 CTA 迭代 |
| Cunkebao/ | 49 | 移动端场景/设置/流量池 |
| SuperAdmin/ | 26 | 超管后台 |
| .cursor/ | 11 | 规则与 Skill |
| 其他 | 14 | docker-compose、.obsidian、.codegraph 等 |

## 重点文件(本地为准)

- 开发文档/1、需求/修改/未完成项与跨仓验收汇总.md
- 开发文档/10、项目管理/账号密码与登录环境一览.md
- 开发文档/10、项目管理/(新建项目管理目录与截图)
- 官网/ 全站 + 宝塔上线文档
- 五端上线验收 46 项(见 ac82726e)

## 刻意未上传

- node_modules/、.DS_Store、.smart-env/
- .开发文档_nested_git_backup/
- **/__pycache__/

## 验收

- 提交页(含本说明): https://github.com/fnvtk/cunkebao_v3/commit/HEAD
- 分支树: https://github.com/fnvtk/cunkebao_v3/tree/develop

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 21:17:41 +08:00

180 lines
5.3 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 存客宝私域银行系统 - 完整 Docker 部署(完全本地化)
# 端口: 存客宝 3100 | 触客宝 3101 | 超管 3103 | AI数智员工 3104 | 后端 8082 | MySQL 3308 | Redis 6380
# 文档: 开发文档/8、部署/Docker_Web部署说明.md
services:
mysql:
profiles: ["embedded-mysql"]
image: mariadb:10.6
container_name: cunkebao-mysql
restart: always
ports:
- "3308:3306"
environment:
MYSQL_ROOT_PASSWORD: root123
MYSQL_DATABASE: cunkebao
MYSQL_USER: cunkebao
MYSQL_PASSWORD: cunkebao123
volumes:
- mysql_data:/var/lib/mysql
networks:
- cunkebao-network
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
redis:
image: redis:7.0-alpine
container_name: cunkebao-redis
restart: always
ports:
- "6380:6379"
volumes:
- redis_data:/data
networks:
- cunkebao-network
server:
build:
context: ./Server
dockerfile: Dockerfile
container_name: cunkebao-server
restart: always
ports:
- "8082:80"
# 神射手对接环境变量PHP getenv() 真值;同步保留 .env.docker [SHENSHESHOU] 备用)
environment:
SHENSHESHOU_BASE_URL: "http://host.docker.internal:3117"
SHENSHESHOU_API_KEY: "sk-archer-16zoszrx68ldb2chpujo"
SHENSHESHOU_API_SECRET: "sec-5bn01xzey62ckews4mt0"
SHENSHESHOU_WEBHOOK_SECRET: "524f9c6e7560b6fab9d4639172b05444fe3e3d88ea4d959b"
volumes:
# 仅挂载源码目录,保留镜像内 vendor避免 bind mount 覆盖 autoload
- ./Server/application:/var/www/html/application
- ./Server/config:/var/www/html/config
- ./Server/extend:/var/www/html/extend
- ./Server/public:/var/www/html/public
- ./Server/route:/var/www/html/route
- ./Server/thinkphp:/var/www/html/thinkphp
- ./Server/think:/var/www/html/think
- ./Server/database:/var/www/html/database
- ./Server/tests:/var/www/html/tests
- ./Server/.env.docker:/var/www/html/.env:ro
# 官方支付证书与卡若AI 网站 / 开发/4、模块/支付模块 同源)
- /Users/karuo/Documents/开发/4、模块/支付模块/支付/微信:/var/www/certs/wechat:ro
- /Users/karuo/Documents/开发/3、自营项目/卡若ai网站/site/certs:/var/www/certs/alipay:ro
- server_runtime:/var/www/html/runtime
command: >
/bin/sh -c "chown -R www-data:www-data /var/www/html/runtime 2>/dev/null;
chmod -R 777 /var/www/html/runtime 2>/dev/null;
exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf"
depends_on:
redis:
condition: service_started
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- cunkebao-network
- datacenter_network
cunkebao-web:
build:
context: ./Cunkebao
dockerfile: Dockerfile
args:
# 本地:同源 /api → nginx.local.conf 反代 cunkebao-server
VITE_API_BASE_URL: "/api"
container_name: cunkebao-web
restart: always
ports:
- "3100:80"
volumes:
- ./Cunkebao/docker/nginx.local.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- server
networks:
- cunkebao-network
touchkebao-web:
build:
context: ./Touchkebao
dockerfile: Dockerfile
args:
# 本地:主 API /apiS2 /s2api → nginx.local.conf 反代线上 kf:9991
VITE_API_BASE_URL: "/api"
VITE_API_BASE_URL2: "/s2api"
VITE_API_WS_URL: "wss://kf.quwanzhi.com:9993"
VITE_USE_WORKPHONE_SDK: "true"
container_name: touchkebao-web
restart: always
ports:
- "3101:80"
volumes:
- ./Touchkebao/docker/nginx.local.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- server
networks:
- cunkebao-network
superadmin-web:
build:
context: ./SuperAdmin
dockerfile: Dockerfile
args:
NEXT_PUBLIC_API_BASE_URL: "/api/v1/admin"
SUPERADMIN_API_PROXY_TARGET: "http://cunkebao-server"
container_name: superadmin-web
restart: always
ports:
- "3103:3000"
environment:
SUPERADMIN_API_PROXY_TARGET: "http://cunkebao-server"
depends_on:
- server
networks:
- cunkebao-network
# AI数智员工kr-phone— 源码在兄弟目录 AI数智员工与本栈共用 cunkebao-network
aistaff-web:
build:
context: ${AISTAFF_ROOT:-../AI数智员工}
dockerfile: Dockerfile
args:
NEXT_PUBLIC_CKB_API_BASE: http://cunkebao-server
NEXT_PUBLIC_SDK_HOST: ""
NEXT_PUBLIC_APP_TYPE_ID: "2"
image: aistaff:latest
container_name: website-aistaff
restart: always
ports:
- "3104:3104"
env_file:
- ${AISTAFF_ROOT:-../AI数智员工}/.env.docker
environment:
NODE_ENV: production
PORT: "3104"
HOSTNAME: "0.0.0.0"
extra_hosts:
- "host.docker.internal:host-gateway"
depends_on:
- server
networks:
- cunkebao-network
volumes:
mysql_data:
redis_data:
server_runtime:
networks:
cunkebao-network:
driver: bridge
name: cunkebao-network
datacenter_network:
external: true
name: datacenter_network