Trae ied为项目完善Docker Compose本地开发运行测试
CRMEB 开源项目 Docker Compose 一键部署教程
以 Gitee 官方项目:CRMEB(ZhongBangKeJi/CRMEB) 为例,提供可直接复制、一次成功的 Docker Compose 部署方案,包含 PHP + Nginx + MySQL + Redis 完整环境,全程无需手动配置环境。
项目地址:https://gitee.com/ZhongBangKeJi/CRMEB
一、前置说明
- 本教程适配 CRMEB v5/v6 通用版(PHP + ThinkPHP 商城系统)
- 一键部署:Nginx + PHP7.4 + MySQL 8 + Redis6.0+
- 数据持久化,删除容器不丢失数据
- 自带项目所需伪静态、环境配置
二、环境要求
- 已安装 Docker + Docker Compose
- 已下载 CRMEB 项目代码到本地/服务器用Trae ide打开项目
三、开始生成
对话框“根据当前项目,帮我生成一个docker-compose启动并运行”,就这么简单,trae ide目前内置多个模型,个人用户基本免费使用,就是用的频率高了,偶尔会提示排队等待,当然也可以自己对接其它的付费模型接口。
四、以下就是生成的结果好了,完美运行
4.1、项目结构
将 CRMEB 代码解压后,在项目根目录创建以下 3 个文件:
CRMEB/ # 项目根目录
├── docker-compose.yml # 核心编排文件
├── php
│ ├── Dockerfile # PHP 环境构建文件
│ ├── php-ini-overrides.ini # PHP配置文件
│ ├── nginx.conf # Nginx 配置
│ └── supervisord.conf # 进程守护配置
├── nginx # Nginx 目录
│ ├──nginx.conf # Nginx 配置
│ └── log # 日志
├── mysql # Mysql 目录
│ ├──data # 数据
│ └── log # 日志
├── redis # Redis 目录
│ ├──data # 数据
│ └── log # 日志
└── 项目所有文件...
4.2、一键部署文件(直接复制)
4.2.1. docker-compose.yml(核心)
services:
# mysql 容器
mysql:
container_name: crmeb_mysql
image: mysql:8.0
ports:
- "33061:3306"
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
MYSQL_USER: crmeb
MYSQL_PASSWORD: 123456
MYSQL_DATABASE: crmeb
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/log:/var/log/mysql
networks:
app_net:
ipv4_address: 192.168.10.11
# redis 容器
redis:
container_name: crmeb_redis
image: redis:latest
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: ./php
dockerfile: Dockerfile
restart: always
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
working_dir: /var/www
volumes:
- ../crmeb:/var/www
- ../crmeb/runtime:/var/www/runtime
ports:
- "9000:9000"
- "40001:40001"
- "40002:40002"
networks:
app_net:
ipv4_address: 192.168.10.90
# nginx 容器
nginx:
container_name: crmeb_nginx
image: nginx:latest
restart: always
ports:
- "8011:80"
depends_on:
- phpfpm
environment:
TZ: Asia/Shanghai
working_dir: /var/www
volumes_from:
- phpfpm
volumes:
- ./nginx/vhost.conf:/etc/nginx/conf.d/default.conf
- ./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
4.2.2. Dockerfile(PHP 环境)
FROM docker.1ms.run/php:7.4-fpm
WORKDIR "/var/www"
# 使用国内 Debian 源(腾讯云源)
RUN sed -i 's/deb.debian.org/mirrors.cloud.tencent.com/g' /etc/apt/sources.list && \
sed -i 's/security.debian.org/mirrors.cloud.tencent.com/g' /etc/apt/sources.list
# 安装必要的依赖
RUN apt-get update && \
apt-get -y --no-install-recommends install \
libfreetype6-dev \
libjpeg-dev \
libpng-dev \
libzip-dev \
zip \
unzip \
wget \
curl \
supervisor \
procps \
&& \
# 安装PHP扩展
docker-php-ext-configure gd --with-freetype --with-jpeg && \
docker-php-ext-install -j$(nproc) bcmath mysqli pdo_mysql gd zip pcntl && \
# 安装Redis扩展
pecl install redis && \
docker-php-ext-enable redis && \
# 创建Supervisor配置目录
mkdir -p /etc/supervisor/conf.d && \
# 清理
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# 复制PHP配置文件
COPY php-ini-overrides.ini /usr/local/etc/php/conf.d/99-overrides.ini
# 复制Supervisor配置文件
COPY supervisord.conf /etc/supervisor/supervisord.conf
# 配置PHP
RUN echo "open_basedir = /tmp:/var:/dev/null" > /usr/local/etc/php/conf.d/open_basedir.ini
# 暴露端口
EXPOSE 9000
# 启动Supervisor
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
4.2.3. nginx.conf(伪静态 + TP 规则)
server {
listen 80;
server_name localhost;
root /var/www/html/public;
index index.php index.html;
# ThinkPHP 伪静态
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHP 解析
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 禁止访问敏感目录
location ~ /\. {
deny all;
}
}
4.2.4 PHP配置文件php-ini-overrides.ini
upload_max_filesize = 100M
post_max_size = 108M
open_basedir = /tmp:/var:/dev/null
disable_functions = system, passthru, checkdnsrr, getmxrr, getservbyname, getservbyport, syslog, popen, show_source, highlight_file, dl, ftp_connect, ftp_login, ftp_pasv, ftp_get, sys_getloadavg, disk_total_space, disk_free_space
upload_tmp_dir = /var/www/temp
4.2.5 进程守护 supervisord.conf
[supervisord]
nodaemon=true
pidfile=/var/run/supervisord.pid
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[program:php-fpm]
command=php-fpm
autostart=true
autorestart=true
[program:queue]
command=php think queue:listen --queue
directory=/var/www
autostart=true
autorestart=true
[program:timer]
command=php think timer start
directory=/var/www
autostart=true
autorestart=false
startsecs=1
startretries=0
[program:workerman]
command=php think workerman start --d
directory=/var/www
autostart=true
autorestart=false
startsecs=1
startretries=0
五、启动部署命令
在 CRMEB 根目录 执行:
1. 构建并启动容器(首次运行)
docker-compose up -d --build
六、安装 CRMEB 系统
- 浏览器访问:
- 本地/服务器IP:
http://localhost:8011
- 本地/服务器IP:
- 进入安装界面,填写数据库信息,这个根据yml文件中配置看,我这个是这个信息
mysql信息:
Host:crmeb_mysql Post:3306 user:crmeb db:crmeb pwd:123456
redis信息:
Host:crmeb_redis Post:6379 db:0 pwd:123456
具体查看这个信息在 docker-compose.yml 文件中找到,没有就把上面这个信息,也复制到对话框,让trae生成的时候按你要求来生成
phpfpm:
container_name: crmeb_php
image: ccr.ccs.tencentyun.com/crmebky_php/php:v7.4
restart: always
environment:
TZ: Asia/Shanghai
MYSQL_HOST_IP: crmeb_mysql #数据库host
MYSQL_PORT: "3306" #数据库端口
MYSQL_USER: crmeb #数据库用户名
MYSQL_PASSWORD: 123456 #数据库密码
MYSQL_DATABASE: crmeb #数据库名称
REDIS_HOST_IP: crmeb_redis #redis host
REDIS_PORT: "6379" #redis 端口
REDIS_DATABASE: "0" #redis 库
REDIS_PASSWORD: 123456 #redis 密码
- 完成安装 → 自动进入后台
后台地址
http://localhost:8011/admin
七、常用管理命令
# 查看运行状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose stop
# 重启服务
docker-compose restart
# 彻底关闭(保留数据)
docker-compose down
# 完全重置(清空数据库)
docker-compose down -v
总结
有AI辅助就是快多了,一会就自动运行起来,不管遇到多复杂的项目,都可以快速在docker中运行起来,不用担心给电脑装一堆环境,以及各种不兼容的情况。尤其对于CRMEB这类采用PHP+ThinkPHP架构、需要Nginx、MySQL、Redis多环境协同的开源电商项目来说,传统部署不仅要手动配置各个组件,还要解决版本兼容、端口冲突、权限设置等一系列繁琐问题,耗费大量时间和精力,甚至会让不少开发者卡在环境配置环节,无法顺利启动项目。
而借助Trae IDE的AI能力,一切都变得简单高效——只需在对话框输入一句简单指令,就能自动生成适配CRMEB项目的完整Docker Compose部署套件,包括核心的编排文件、PHP环境构建文件、Nginx配置、PHP自定义配置以及进程守护配置,无需手动编写一行复杂代码。Trae IDE作为字节跳动推出的智能IDE,不仅内置多个免费模型,覆盖绝大多数开发场景,即便偶尔出现排队等待,也完全不影响日常使用,还支持对接第三方付费模型,满足更高需求,其高效的响应速度和稳定的生成能力,真正实现了“一键指令,全量生成”的便捷体验,这也是其能积累全球600万+用户、成为众多开发者首选工具的核心原因之一。
结合Docker Compose的容器编排优势,生成的配置文件自带数据持久化设计,将MySQL、Redis的数据和日志分别挂载到本地目录,确保容器删除后数据不丢失,同时合理分配网络和端口,避免冲突,完美适配CRMEB项目的运行需求。CRMEB作为一款可商用、可二次开发的开源电商系统,本身具备多端适配、高并发支撑等优势,而Trae IDE与Docker的结合,进一步降低了它的部署门槛,让开发者无需关注环境配置的细节,只需复制生成的文件、执行简单命令,就能快速启动项目,专注于业务开发和二次迭代。
这种AI辅助部署的方式,不仅解决了传统部署的痛点,更极大提升了开发效率,无论是新手开发者入门CRMEB项目,还是资深开发者快速搭建测试、生产环境,都能节省大量时间成本。无需担心本地环境混乱,无需花费精力排查环境兼容问题,真正实现了“轻量部署、高效开发”,也让开源项目的落地变得更加简单易行。
当然中间肯定会遇到问题,不用担心AI会自动帮你修复好,肯定能跑起来的。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)