核心是跳过镜像内构建、直接复用宿主机已有hyperf源码,通过-v挂载实现热更新和快速启动;使用hyperf/hyperf:8.1-alpine-v3.18-swoole镜像,-v绑定本地项目到/opt/www,-w指定工作目录,--privileged与-u root保障权限,hyperf_env=dev启用开发模式。

一、确认本地已有 Hyperf 项目
确保你的 Ubuntu 系统上已存在一个可运行的 Hyperf 项目(例如通过 composer create-project hyperf/hyperf-skeleton 初始化好的目录),路径类似:
/home/yourname/my-hyperf
该目录下应包含 config/、app/、bin/hyperf.php、composer.json 等标准结构。
二、选用官方预编译镜像启动容器
Hyperf 官方维护了多个带 Swoole 扩展的 Alpine 镜像,推荐使用稳定版本,例如:
hyperf/hyperf:8.1-alpine-v3.18-swoole
它已内置 PHP 8.1、Swoole ≥ 5.1、pcntl、redis、yaml 等常用扩展,无需手动编译。
执行以下命令一键挂载并启动:
docker run -it --name hyperf-dev \ -v /home/yourname/my-hyperf:/opt/www \ -w /opt/www \ -p 9501:9501 \ -e HYPERF_ENV=dev \ --privileged \ -u root \ hyperf/hyperf:8.1-alpine-v3.18-swoole \ php bin/hyperf.php start
-
-v 将本地项目目录挂载到容器内
/opt/www(与镜像默认工作路径一致) - -w 设定容器工作目录,避免路径错误
- --privileged 解决部分 Swoole 功能(如信号处理、协程定时器)在非特权模式下的兼容性问题
- -u root 避免因权限不足导致 runtime 目录写入失败(开发阶段可接受;生产请改用非 root 用户)
三、关键配置说明与常见适配
挂载后需注意以下几点,否则可能启动失败或功能异常:
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
-
runtime/ 目录权限:首次启动时容器会自动创建
runtime/,但若宿主机已有该目录且属主不是 root,建议先清空或chown -R $USER:$USER runtime/ -
.env 文件生效:确保
.env在挂载目录根路径,且HYPERF_ENV=dev已设置,否则日志/调试开关不生效 -
Redis/MySQL 连接问题:容器内访问宿主机服务需用
host.docker.internal(Docker 20.10+ 支持)或实际宿主机 IP(如172.17.0.1),不能写localhost -
配置热更新:挂载
config/后修改配置文件无需重启容器,Hyperf 会在 dev 模式下自动重载(依赖SCAN_CACHEABLE=false)
四、验证与后续操作
启动成功后:
- 终端输出应含
Server started和监听地址http://0.0.0.0:9501 - 浏览器访问 https://www.php.cn/link/64a2ced1a3bc35f45f1c3bdb0c8b256f 可见欢迎页或健康接口响应
- 修改任意
app/Controller/下的代码,刷新页面即可看到变化(无需重启) - 如需后台运行,把
docker run换成docker-compose up -d(配合 docker-compose.yml 更规范)










