Hyperf官方提供的Docker镜像,用于运行基于Hyperf框架的高性能PHP协程应用,支持API及微服务开发部署。
收藏数: 138
下载次数: 1227287
状态: active
发布者: hyperf
类型: 镜像
hyperf/hyperfHyperf 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 | 链接 |
7.3-alpine-v3.11-swow-* | PHP 7.3 + Swow | 链接 |
7.3-alpine-v3.11-base | PHP 7.3 基础环境 | 链接 |
7.4-alpine-v3.12-swoole-* | PHP 7.4 + Swoole | 链接 |
7.4-alpine-v3.12-swow-* | PHP 7.4 + Swow | 链接 |
7.4-alpine-v3.12-base | PHP 7.4 基础环境 | 链接 |
8.0-alpine-v3.12-swoole-* | PHP 8.0 + Swoole | 链接 |
8.0-alpine-v3.12-swow-* | PHP 8.0 + Swow | 链接 |
8.0-alpine-v3.12-base | PHP 8.0 基础环境 | 链接 |
在 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"]
bashdocker build -t hyperf-app .
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 扩展,满足特定业务需求。
dockerfileRUN apk add --no-cache librdkafka-dev \ && pecl install rdkafka \ && echo "extension=rdkafka.so" > /etc/php7/conf.d/rdkafka.ini
dockerfileRUN apk add --no-cache openssl-dev \ && pecl install mongodb \ && echo "extension=mongodb.so" > /etc/php7/conf.d/mongodb.ini
dockerfileRUN apk add --no-cache protobuf \ && pecl install protobuf \ && echo "extension=protobuf.so" > /etc/php7/conf.d/protobuf.ini
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
dockerfile# 安装 gnu-libiconv 解决字符集问题 RUN apk --no-cache --allow-untrusted --repository [***] add gnu-libiconv=1.15-r2 ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so
以下是 hyperf/hyperf 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务