Skip to content

概述

系统支持通过 Docker 容器化方式在本地(Windows / macOS / Linux)快速构建运行环境,包括 MySQL 5.7+、Redis 6.0+ 及集成了 Swoole 的 PHP 运行镜像。


架构与流程

  1. 启动 MySQL 5.7 / 8.0 容器并挂载数据与配置文件;
  2. 启动 Redis 容器并挂载数据卷;
  3. 构建包含 PHP 8.0 + Swoole 扩展的 Docker 镜像;
  4. 将宿主机代码目录挂载至容器 /var/www/ 目录下;
  5. 在容器内启动 php think swoole 服务,宿主机通过端口映射进行访问。

Dockerfile 示例

在项目根目录下创建 Dockerfile

dockerfile
FROM php:8.0-cli

RUN apt-get update && apt-get install -y \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libpng-dev \
    libzip-dev \
    zip \
    unzip \
    git \
    procps

RUN docker-php-ext-install -j$(nproc) pdo_mysql bcmath gd zip

# 安装 Redis 扩展与 Swoole 扩展
RUN pecl install redis-5.3.7 && docker-php-ext-enable redis \
    && pecl install swoole-4.8.12 && docker-php-ext-enable swoole

WORKDIR /var/www

EXPOSE 20698 20697

CMD ["php", "think", "swoole"]

容器启动步骤

启动 MySQL 容器

bash
docker run -d \
  --name ebaozu-mysql \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=root \
  -e MYSQL_DATABASE=ebaozu_v4 \
  -e TZ=Asia/Shanghai \
  mysql:5.7

启动 Redis 容器

bash
docker run -d \
  --name ebaozu-redis \
  -p 6379:6379 \
  redis:6.2 --appendonly yes

构建并启动 PHP + Swoole 项目容器

bash
# 构建镜像
docker build -t ebaozu-php:8.0 .

# 挂载源码目录并运行容器
docker run -d \
  --name ebaozu-app \
  -p 20697:20697 \
  -v $(pwd):/var/www \
  --link ebaozu-mysql:mysql \
  --link ebaozu-redis:redis \
  ebaozu-php:8.0

配置环境变量 (.env)

在项目根目录 .env 中将连接地址修改为容器内部或宿主机映射地址:

ini
[DATABASE]
HOSTNAME = mysql
HOSTPORT = 3306
USERNAME = root
PASSWORD = root
DATABASE = ebaozu_v4
PREFIX = eb_

[REDIS]
HOSTNAME = redis
PORT = 6379
PASSWORD =
SELECT = 0

常用调试命令

bash
# 进入 PHP 容器终端
docker exec -it ebaozu-app /bin/bash

# 查看容器运行日志
docker logs -f ebaozu-app

# 在容器内手动重启 Swoole
php think swoole

承信租多门店租赁商城系统官方文档