
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Hyperf Docker 镜像是 Hyperf 框架官方提供的容器化解决方案,旨在简化 Hyperf 应用的部署与运行流程。Hyperf 是基于 Swoole 的高性能 PHP 协程框架,该镜像预集成了 Hyperf 运行所需的环境依赖、PHP 扩展及运行时(Swoole/Swow),支持多版本 PHP、多基础镜像及轻量级部署,适用于快速搭建 Hyperf 开发环境与生产环境。
base(基础环境)、dev(开发环境)、swoole(Swoole 运行时)、swow(Swow 运行时)v4.5.5)基础镜像已集成以下常用 PHP 扩展,满足 Hyperf 核心功能需求:
[PHP Modules] bcmath、Core、ctype、curl、date、dom、fileinfo、filter、gd、hash、iconv、json、libxml、mbstring、mysqlnd、openssl、pcntl、pcre、PDO、pdo_mysql、pdo_sqlite、Phar、posix、readline、redis、Reflection、session、SimpleXML、sockets、sodium、SPL、standard、sysvmsg、sysvsem、sysvshm、tokenizer、xml、xmlreader、xmlwriter、Zend OPcache、zip、zlib [Zend Modules] Zend OPcache
基于 Alpine 基础镜像构建,体积小、资源占用低,结合 Swoole/Swow 协程运行时,可充分发挥 Hyperf 的高性能特性。
镜像标签由以下部分组成,各部分含义如下:
{PHP版本}-{基础镜像}-v{Alpine版本}-{运行时}-{Swoole/Swow版本}
PHP版本:如 7.3、7.4、8.0(必填)基础镜像:alpine 或 ubuntu(必填)Alpine版本:如 v3.11、v3.12(基础镜像为 Alpine 时必填)运行时:base、dev、swoole、swow(必填)Swoole/Swow版本:如 v4.5.5(可选,默认使用最新稳定版)| 标签格式 | 说明 | Dockerfile 链接 |
|---|---|---|
7.3-alpine-v3.11-swoole-* | PHP 7.3 + Swoole | https://github.com/hyperf-cloud/hyperf-docker/blob/master/7.3/alpine/swoole/Dockerfile |
7.3-alpine-v3.11-swow-* | PHP 7.3 + Swow | https://github.com/hyperf-cloud/hyperf-docker/blob/master/7.3/alpine/swow/Dockerfile |
7.3-alpine-v3.11-base | PHP 7.3 基础环境 | https://github.com/hyperf-cloud/hyperf-docker/blob/master/7.3/alpine/base/Dockerfile |
7.4-alpine-v3.12-swoole-* | PHP 7.4 + Swoole | https://github.com/hyperf-cloud/hyperf-docker/blob/master/7.4/alpine/swoole/Dockerfile |
7.4-alpine-v3.12-swow-* | PHP 7.4 + Swow | https://github.com/hyperf-cloud/hyperf-docker/blob/master/7.4/alpine/swoole/Dockerfile |
7.4-alpine-v3.12-base | PHP 7.4 基础环境 | https://github.com/hyperf-cloud/hyperf-docker/blob/master/7.4/alpine/base/Dockerfile |
8.0-alpine-v3.12-swoole-* | PHP 8.0 + Swoole | https://github.com/hyperf-cloud/hyperf-docker/blob/master/8.0/alpine/swoole/Dockerfile |
8.0-alpine-v3.12-swow-* | PHP 8.0 + Swow | https://github.com/hyperf-cloud/hyperf-docker/blob/master/8.0/alpine/swoole/Dockerfile |
8.0-alpine-v3.12-base | PHP 8.0 基础环境 | https://github.com/hyperf-cloud/hyperf-docker/blob/master/8.0/alpine/base/Dockerfile |
步骤 1:创建项目 Dockerfile
在 Hyperf 项目根目录创建 Dockerfile,示例如下(以 7.4-alpine-v3.12-swoole 为例):
dockerfileFROM hyperf/hyperf:7.4-alpine-v3.12-swoole # 设置工作目录 WORKDIR /opt/www # 复制项目代码 COPY . . # 安装依赖 RUN composer install --no-dev -o # 启动命令(根据 Hyperf 应用类型调整) CMD ["php", "bin/hyperf.php", "start"]
步骤 2:构建镜像
bashdocker build -t hyperf-app .
步骤 3:运行容器
bashdocker run -d -p 9501:9501 --name hyperf-container hyperf-app
-p 9501:9501:映射 Hyperf 默认端口--name hyperf-container:指定容器名称创建 docker-compose.yml,适合多服务部署(如配合 MySQL、Redis):
yamlversion: '3.8' services: hyperf: build: . image: hyperf-app container_name: hyperf-app ports: - "9501:9501" volumes: - ./:/opt/www # 开发环境挂载代码目录,实时更新 depends_on: - mysql - redis environment: - APP_ENV=prod - DB_HOST=mysql - REDIS_HOST=redis mysql: image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=hyperf ports: - "3306:3306" redis: image: redis:alpine ports: - "6379:6379"
启动服务:
bashdocker-compose up -d
通过 Dockerfile 安装额外 PHP 扩展,满足特定业务需求。
5.3.1 Kafka 扩展
dockerfileRUN apk add --no-cache librdkafka-dev \ && pecl install rdkafka \ && echo "extension=rdkafka.so" > /etc/php7/conf.d/rdkafka.ini
5.3.2 MongoDB 扩展
dockerfileRUN apk add --no-cache openssl-dev \ && pecl install mongodb \ && echo "extension=mongodb.so" > /etc/php7/conf.d/mongodb.ini
5.3.3 Protobuf 扩展
dockerfileRUN apk add --no-cache protobuf \ && pecl install protobuf \ && echo "extension=protobuf.so" > /etc/php7/conf.d/protobuf.ini
5.3.4 Swoole Tracker(性能监控)
dockerfile# 下载并安装 Swoole Tracker ADD ./swoole-tracker-install.sh /tmp RUN chmod +x /tmp/swoole-tracker-install.sh \ && cd /tmp \ && ./swoole-tracker-install.sh \ && rm /tmp/swoole-tracker-install.sh \ # 配置扩展 && cp /tmp/swoole-tracker/swoole_tracker72.so /usr/lib/php7/modules/swoole_tracker72.so \ && echo "extension=swoole_tracker72.so" > /etc/php7/conf.d/swoole-tracker.ini \ && echo "apm.enable=1" >> /etc/php7/conf.d/swoole-tracker.ini \ && echo "apm.sampling_rate=100" >> /etc/php7/conf.d/swoole-tracker.ini \ && echo "apm.enable_memcheck=1" >> /etc/php7/conf.d/swoole-tracker.ini \ # 启动 Agent && printf '#!/bin/sh\n/opt/swoole/script/php/swoole_php /opt/swoole/node-agent/src/node.php' > /opt/swoole/entrypoint.sh \ && chmod 755 /opt/swoole/entrypoint.sh
5.3.5 修复阿里云 OSS 字符集问题
dockerfile# 安装 gnu-libiconv 解决字符集问题 RUN apk --no-cache --allow-untrusted --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ add gnu-libiconv=1.15-r2 ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so
以下是 hyperf/hyperf 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务