Hyperf官方提供的Docker镜像,用于运行基于Hyperf框架的高性能PHP协程应用,支持API及微服务开发部署。
收藏数: 140
下载次数: 1269325
类型:

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 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务