Appearance
概述
系统支持通过 Docker 容器化方式在本地(Windows / macOS / Linux)快速构建运行环境,包括 MySQL 5.7+、Redis 6.0+ 及集成了 Swoole 的 PHP 运行镜像。
架构与流程
- 启动 MySQL 5.7 / 8.0 容器并挂载数据与配置文件;
- 启动 Redis 容器并挂载数据卷;
- 构建包含 PHP 8.0 + Swoole 扩展的 Docker 镜像;
- 将宿主机代码目录挂载至容器
/var/www/目录下; - 在容器内启动
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