mirror of
https://github.com/crmeb/CRMEB.git
synced 2026-10-28 13:31:04 +00:00
206 lines
5.4 KiB
YAML
206 lines
5.4 KiB
YAML
services:
|
||
# mysql 容器
|
||
mysql:
|
||
container_name: crmeb_mysql
|
||
image: ccr.ccs.tencentyun.com/crmebky_php/mysql:v8.0.45
|
||
restart: always
|
||
ports:
|
||
- "33061:3306"
|
||
environment:
|
||
TZ: Asia/Shanghai
|
||
MYSQL_ROOT_PASSWORD: 123456
|
||
MYSQL_USER: crmeb
|
||
MYSQL_PASSWORD: 123456
|
||
MYSQL_DATABASE: crmeb
|
||
volumes:
|
||
- ./docker/mysql/data:/var/lib/mysql
|
||
- ./docker/mysql/log:/var/log/mysql
|
||
networks:
|
||
app_net:
|
||
ipv4_address: 192.168.10.11
|
||
|
||
# redis 容器
|
||
redis:
|
||
container_name: crmeb_redis
|
||
image: ccr.ccs.tencentyun.com/crmebky_php/redis:v8.6.1
|
||
restart: always
|
||
ports:
|
||
- "63791:6379"
|
||
environment:
|
||
TZ: Asia/Shanghai
|
||
REDIS_PASSWORD: 123456
|
||
networks:
|
||
app_net:
|
||
ipv4_address: 192.168.10.10
|
||
|
||
# php 容器
|
||
phpfpm:
|
||
container_name: crmeb_php
|
||
build:
|
||
context: ./docker/php
|
||
dockerfile: Dockerfile
|
||
# 默认构建支持范围下限 8.2;验证其它版本:PHP_VERSION=8.4 docker compose up -d --build
|
||
args:
|
||
PHP_VERSION: "${PHP_VERSION:-8.2}"
|
||
image: crmeb_php:${PHP_VERSION:-8.2}
|
||
restart: always
|
||
ports:
|
||
- "9000:9000"
|
||
environment:
|
||
TZ: Asia/Shanghai
|
||
MYSQL_HOST_IP: crmeb_mysql
|
||
MYSQL_PORT: "3306"
|
||
MYSQL_USER: crmeb
|
||
MYSQL_PASSWORD: 123456
|
||
MYSQL_DATABASE: crmeb
|
||
REDIS_HOST_IP: crmeb_redis
|
||
REDIS_PORT: "6379"
|
||
REDIS_DATABASE: "0"
|
||
REDIS_PASSWORD: 123456
|
||
APP_DEBUG: true
|
||
DEFAULT_TIMEZONE: Asia/Shanghai
|
||
PHP_WORKERMAN_CHANNEL_IP: workerman
|
||
# MCP 开发文档工具(crmeb_dev_docs_search)定位仓库根:只读挂载 help 与 .crmeb
|
||
CRMEB_REPO_ROOT: /repo
|
||
working_dir: /var/www
|
||
volumes:
|
||
- ./backend:/var/www
|
||
- ./backend/runtime:/var/www/runtime
|
||
- ./help:/repo/help:ro
|
||
- ./.crmeb:/repo/.crmeb:ro
|
||
depends_on:
|
||
- mysql
|
||
- redis
|
||
networks:
|
||
app_net:
|
||
ipv4_address: 192.168.10.90
|
||
|
||
# 定时任务进程:以前台模式运行,由 Docker 负责开机启动和异常重启
|
||
timer:
|
||
container_name: crmeb_timer
|
||
image: crmeb_php:${PHP_VERSION:-8.2}
|
||
restart: always
|
||
command: ["php", "think", "timer", "start"]
|
||
environment:
|
||
TZ: Asia/Shanghai
|
||
MYSQL_HOST_IP: crmeb_mysql
|
||
MYSQL_PORT: "3306"
|
||
MYSQL_USER: crmeb
|
||
MYSQL_PASSWORD: 123456
|
||
MYSQL_DATABASE: crmeb
|
||
REDIS_HOST_IP: crmeb_redis
|
||
REDIS_PORT: "6379"
|
||
REDIS_DATABASE: "0"
|
||
REDIS_PASSWORD: 123456
|
||
APP_DEBUG: true
|
||
DEFAULT_TIMEZONE: Asia/Shanghai
|
||
PHP_WORKERMAN_CHANNEL_IP: workerman
|
||
working_dir: /var/www
|
||
volumes:
|
||
- ./backend:/var/www
|
||
- ./backend/runtime:/var/www/runtime
|
||
depends_on:
|
||
- mysql
|
||
- redis
|
||
networks:
|
||
- app_net
|
||
|
||
# Redis 队列消费者:以前台模式运行,由 Docker 负责异常重启
|
||
queue:
|
||
container_name: crmeb_queue
|
||
image: crmeb_php:${PHP_VERSION:-8.2}
|
||
restart: always
|
||
# queue:listen 自身不写心跳文件,由包装脚本负责优雅停机与 runtime/.queue_heartbeat
|
||
command: ["sh", "/repo/docker/queue-worker.sh"]
|
||
environment:
|
||
TZ: Asia/Shanghai
|
||
MYSQL_HOST_IP: crmeb_mysql
|
||
MYSQL_PORT: "3306"
|
||
MYSQL_USER: crmeb
|
||
MYSQL_PASSWORD: 123456
|
||
MYSQL_DATABASE: crmeb
|
||
REDIS_HOST_IP: crmeb_redis
|
||
REDIS_PORT: "6379"
|
||
REDIS_DATABASE: "0"
|
||
REDIS_PASSWORD: "123456"
|
||
APP_DEBUG: true
|
||
DEFAULT_TIMEZONE: Asia/Shanghai
|
||
PHP_WORKERMAN_CHANNEL_IP: workerman
|
||
working_dir: /var/www
|
||
volumes:
|
||
- ./backend:/var/www
|
||
- ./backend/runtime:/var/www/runtime
|
||
- ./docker/queue-worker.sh:/repo/docker/queue-worker.sh:ro
|
||
depends_on:
|
||
- mysql
|
||
- redis
|
||
networks:
|
||
- app_net
|
||
|
||
# 统一 WebSocket 网关及内部 Channel 服务
|
||
workerman:
|
||
container_name: crmeb_workerman
|
||
image: crmeb_php:${PHP_VERSION:-8.2}
|
||
restart: always
|
||
command: ["php", "think", "workerman", "start"]
|
||
environment:
|
||
TZ: Asia/Shanghai
|
||
MYSQL_HOST_IP: crmeb_mysql
|
||
MYSQL_PORT: "3306"
|
||
MYSQL_USER: crmeb
|
||
MYSQL_PASSWORD: 123456
|
||
MYSQL_DATABASE: crmeb
|
||
REDIS_HOST_IP: crmeb_redis
|
||
REDIS_PORT: "6379"
|
||
REDIS_DATABASE: "0"
|
||
REDIS_PASSWORD: "123456"
|
||
APP_DEBUG: true
|
||
DEFAULT_TIMEZONE: Asia/Shanghai
|
||
PHP_WORKERMAN_CHANNEL_IP: 127.0.0.1
|
||
PHP_WORKERMAN_CHANNEL_LISTEN_IP: 0.0.0.0
|
||
# MCP 开发文档工具(crmeb_dev_docs_search)定位仓库根:只读挂载 help 与 .crmeb
|
||
CRMEB_REPO_ROOT: /repo
|
||
working_dir: /var/www
|
||
volumes:
|
||
- ./backend:/var/www
|
||
- ./backend/runtime:/var/www/runtime
|
||
- ./help:/repo/help:ro
|
||
- ./.crmeb:/repo/.crmeb:ro
|
||
depends_on:
|
||
- mysql
|
||
- redis
|
||
ports:
|
||
- "40001:40001"
|
||
networks:
|
||
- app_net
|
||
|
||
# nginx 容器
|
||
nginx:
|
||
container_name: crmeb_nginx
|
||
image: ccr.ccs.tencentyun.com/crmebky_php/nginx:v1.29.6
|
||
restart: always
|
||
ports:
|
||
- "8011:80"
|
||
depends_on:
|
||
- phpfpm
|
||
- workerman
|
||
environment:
|
||
TZ: Asia/Shanghai
|
||
working_dir: /var/www
|
||
volumes_from:
|
||
- phpfpm
|
||
volumes:
|
||
- ./docker/nginx/vhost.conf:/etc/nginx/conf.d/default.conf
|
||
- ./docker/nginx/log:/etc/nginx/log
|
||
networks:
|
||
app_net:
|
||
ipv4_address: 192.168.10.80
|
||
|
||
networks:
|
||
app_net:
|
||
driver: bridge
|
||
ipam:
|
||
driver: default
|
||
config:
|
||
- subnet: 192.168.10.0/24
|