
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://img.shields.io/docker/v/keinos/php8-jit](https://hub.docker.com/r/keinos/php8-jit/tags "Latest build") https://img.shields.io/docker/image-size/keinos/php8-jit?sort=semver](https://cloud.docker.com/repository/docker/keinos/php8-jit "Docker Image Size (latest semver)") https://img.shields.io/docker/pulls/keinos/php8-jit](https://hub.docker.com/r/keinos/php8-jit "Docker Pulls from Docker Hub") https://img.shields.io/github/issues/KEINOS/Dockerfile_of_PHP8-JIT](https://github.com/KEINOS/Dockerfile_of_PHP8-JIT/issues "GitHub issues") https://img.shields.io/badge/GitHub-Dockerfile-blue?logo=github](https://github.com/KEINOS/Dockerfile_of_PHP8-JIT "View the Dockerfile in GitHub") https://img.shields.io/badge/dockerhub-Image-blue?logo=docker](https://hub.docker.com/r/keinos/php8-jit "View image info on DockerHub")
这是一个基于https://github.com/php/php-src%E6%9E%84%E5%BB%BA%E7%9A%84PHP8-dev%EF%BC%88php 8.0.0-beta3)Alpine Docker镜像,已启用JIT特性。
bashdocker pull docker.xuanyuan.run/keinos/php8-jit:latest
latest标签镜像支持以下架构:ARM v6l、ARM v7l、ARM64和x86_64(AMD/Intel)。基于GitHub上https://github.com/php/php-src%E7%9A%84%E6%9C%80%E6%96%B0%60master%60%E5%88%86%E6%94%AF%E6%9E%84%E5%BB%BA%E3%80%82
可用标签
latest:(支持ARM v6l、ARM v7l、ARM64、x86_64架构)镜像基于:
镜像信息
路径信息
usr/local/etc/php/conf.d/usr/local/lib/php/extensions/usr/src/php.zip(提取需运行docker-php-source extract)
/usr/src/php/php-src-master/需要注意的设置:
php -i输出:https://github.com/KEINOS/Dockerfile_of_PHP8-JIT/blob/php8-jit/info-phpinfo.txtphp -m输出:https://github.com/KEINOS/Dockerfile_of_PHP8-JIT/blob/php8-jit/info-get_loaded_extensions.txtwww-dataglob函数的GLOB_BRACE标志不可用。
mbstring:已启用
shellsession$ # 拉取最新镜像 $ docker pull docker.xuanyuan.run/keinos/php8-jit ...
shellsession$ # 交互式运行 $ docker run --rm -it keinos/php8-jit Interactive shell php > echo phpversion(); 8.0.0-dev php > php > exit $
shellsession$ # 挂载本地文件并运行脚本 $ ls test.php $ # 运行脚本 $ docker run --rm \ > -v $(pwd)/test.php:/app/test.php \ > keinos/php8-jit \ > php /app/test.php Hello, World! $
shellsession$ # 挂载文件并在容器内交互式运行 $ docker run --rm -it -v $(pwd):/app keinos/php8-jit /bin/sh / $ php -v PHP 8.0.0-dev (cli) (built: Jun 27 2020 22:23:17) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies with Zend OPcache v8.0.0-dev, Copyright (c), by Zend Technologies / $ cd /app /app $ /app $ ls test.php /app $ php test.php Hello, World! /app $ /app $ exit $
dockerFROM docker.xuanyuan.run/keinos/php8-jit:latest USER root COPY . /app WORKDIR /app # 安装Composer RUN \ echo '- 安装Composer ...' && \ EXPECTED_SIGNATURE="$(wget -q -O - https://composer.github.io/installer.sig)"; \ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"; \ ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"; \ [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ] && { >&2 echo '错误:安装程序签名无效'; exit 1; }; \ php composer-setup.php --quiet --install-dir=/bin --filename=composer && \ composer --version && \ rm composer-setup.php # 安装PHPUnit RUN \ composer require --ignore-platform-reqs phpunit/phpunit && \ ./vendor/bin/phpunit --version ENTRYPOINT [ "/app/vendor/bin/phpunit", "--testdox", "./tests" ]
要安装https://github.com/php/php-src/tree/master/ext%EF%BC%8C%E8%AF%B7%E4%BD%BF%E7%94%A8%60docker-php-ext-install%60%E5%91%BD%E4%BB%A4%EF%BC%88%E6%AD%A4%E5%91%BD%E4%BB%A4%E4%BC%9A%E5%90%8C%E6%97%B6%E5%90%AF%E7%94%A8%E6%89%A9%E5%B1%95%EF%BC%89%E3%80%82
可安装的扩展列表
安装gettext扩展的Dockerfile示例:
DockerfileFROM docker.xuanyuan.run/keinos/php8-jit:latest # 安装扩展需要root权限 USER root RUN \ # 安装gettext依赖 apk --no-cache add gettext-dev && \ # 安装gettext扩展 docker-php-ext-install gettext # 切换回默认用户 USER www-data
已包含https://pecl.php.net/%E5%91%BD%E4%BB%A4%EF%BC%88%E8%87%AAhttps://hub.docker.com/r/keinos/php8-jit/tags%E7%89%88%E6%9C%AC%E8%B5%B7%EF%BC%8C%E5%8F%82%E8%80%83Issue https://github.com/KEINOS/Dockerfile_of_PHP8-JIT/issues/13%EF%BC%89%E3%80%82
也可以使用docker-php-ext-pecl install从源码安装PECL包。
从源码安装PECL的https://www.php.net/manual/en/ref.yaml.php%E7%A4%BA%E4%BE%8B%EF%BC%9A
DockerfileFROM docker.xuanyuan.run/keinos/php8-jit:latest # 编译和安装包需要root权限 USER root RUN \ # 安装YAML依赖 apk --no-cache add yaml-dev && \ # 从源码安装PECL docker-php-ext-pecl install yaml # 切换回默认用户 USER www-data
注意:部分PECL扩展包无法安装,主要是预构建的扩展(如json、hash等)。
| 测试项 | v5.6.40 | v7.0.33 | v7.1.33 | v7.2.31 | v7.3.18 | v7.4.6 | 8.0.0-dev (JIT关闭) | 8.0.0-dev (JIT开启) |
|---|---|---|---|---|---|---|---|---|
| https://github.com/KEINOS/Dockerfile-of-PHP8-JIT/blob/php8-jit/test/test-fibonacci.php | 1.521 | 0.665 | 0.598 | 0.269 | 0.239 | 0.194 | 0.261 | 0.107 |
| https://github.com/KEINOS/Dockerfile-of-PHP8-JIT/blob/php8-jit/test/test-zundoko.php | 2.485 | 1.462 | 1.413 | 0.701 | 0.646 | 0.636 | 0.672 | 0.416 |
| -- https://github.com/KEINOS/Dockerfile-of-PHP8-JIT/blob/php8-jit/test/test-zend_bench.php -- | ||||||||
| simple | 0.178 | 0.100 | 0.101 | 0.064 | 0.051 | 0.041 | 0.054 | 0.002 |
| simplecall | 0.186 | 0.027 | 0.027 | 0.010 | 0.010 | 0.007 | 0.010 | 0.001 |
| simpleucall | 0.210 | 0.071 | 0.080 | 0.023 | 0.018 | 0.025 | 0.022 | 0.001 |
| simpleudcall | 0.226 | 0.076 | 0.088 | 0.028 | 0.021 | 0.021 | 0.024 | 0.001 |
| mandel | 0.491 | 0.320 | 0.329 | 0.189 | 0.190 | 0.175 | 0.189 | 0.007 |
| mandel2 | 0.643 | 0.360 | 0.358 | 0.167 | 0.167 | 0.184 | 0.170 | 0.008 |
| ackermann(7) | 0.187 | 0.061 | 0.067 | 0.032 | 0.031 | 0.031 | 0.033 | 0.015 |
| ary(50000) | 0.031 | 0.008 | 0.007 | 0.007 | 0.008 | 0.007 | 0.007 | 0.007 |
| ary2(50000) | 0.025 | 0.006 | 0.005 | 0.006 | 0.007 | 0.006 | 0.006 | 0.006 |
| ary3(2000) | 0.298 | 0.142 | 0.124 | 0.059 | 0.047 | 0.044 | 0.049 | 0.015 |
| fibo(30) | 0.594 | 0.230 | 0.228 | 0.106 | 0.091 | 0.081 | 0.093 | 0.042 |
| hash1(50000) | 0.049 | 0.024 | 0.024 | 0.016 | 0.015 | 0.015 | 0.015 | 0.016 |
| hash2(500) | 0.053 | 0.022 | 0.023 | 0.013 | 0.008 | 0.008 | 0.008 | 0.011 |
| heapsort(20000) | 0.145 | 0.073 | 0.069 | 0.037 | 0.036 | 0.036 | 0.037 | 0.014 |
| matrix(20) | 0.130 | 0.067 | 0.062 | 0.034 | 0.035 | 0.030 | 0.030 | 0.014 |
| nestedloop(12) | 0.301 | 0.145 | 0.143 | 0.088 | 0.091 | 0.072 | 0.091 | 0.013 |
| sieve(30) | 0.151 | 0.041 | 0.053 | 0.021 | 0.018 | 0.014 | 0.017 | 0.005 |
| strcat(200000) | 0.027 | 0.014 | 0.015 | 0.011 | 0.011 | 0.011 | 0.010 | 0.010 |
| --------------- | ------- | ------- | ------- | ------- | ------- | ------ | ----- | ----- |
| 总计 | 3.923 | 1.787 | 1.804 | 0.911 | 0.855 | 0.805 | 0.867 | 0.187 |
测试环境
shellsession$ # macOS Mojave (OSX 10.14.5) $ sw_vers ProductName: Mac OS X ProductVersion: 10.14.6 BuildVersion: 18G4032 $ # Docker 19.03.8 $ docker version Client: Docker Engine - Community Version: 19.03.8 API version: 1.40 Go version: go1.12.17 Git commit: afacb8b Built: Wed Mar 11 01:21:11 2020 OS/Arch: darwin/amd64 Experimental: true Server: Docker Engine - Community Engine: Version: 19.03.8 API version: 1.40 (minimum version 1.12) Go version: go1.12.17 Git commit: afacb8b Built: Wed Mar 11 01:29:16 2020 OS/Arch: linux/amd64 Experimental: true containerd: Version: v1.2.13 GitCommit: 7ad***fa3e55e52b890ea95e65ba581ae3429 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务