
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
jtreminio/php-cli:8.1jtreminio/php-cli:8.0jtreminio/php-cli:7.4https://hub.docker.com/r/jtreminio/php-cli/tags/
https://github.com/jtreminio/php-docker/blob/master/Dockerfile-php-cli
对于通过命令行界面(CLI)运行的PHP项目,可按以下方式操作。
在PHP项目中创建Dockerfile
dockerfileFROM jtreminio/php-cli:8.1 COPY . /usr/src/myapp WORKDIR /usr/src/myapp CMD [ "php", "./your-script.php" ]
然后运行以下命令构建并运行Docker镜像:
shelldocker build -t my-php-app . docker run -it --rm --name my-running-app my-php-app
运行单个PHP脚本
对于许多简单的单文件项目,编写完整的Dockerfile可能不方便。这种情况下,可以直接使用PHP Docker镜像运行PHP脚本:
shelldocker run -it --rm \ --name my-running-script \ -v "$PWD":/usr/src/myapp \ -w /usr/src/myapp \ jtreminio/php-cli:8.1 php your-script.php
注意:所有PHP镜像变体均包含PHP CLI。
我已创建包含PHP-FPM的镜像。
https://hub.docker.com/r/jtreminio/php
我已创建这些镜像的全功能Nginx/Apache版本。
https://hub.docker.com/r/jtreminio/php-nginx
https://hub.docker.com/r/jtreminio/php-apache
这些镜像基于Ondřej Surý的PPA构建。
它们内置了最常用的PHP模块。完整列表如下。
Composer安装在/usr/local/bin/composer。
PHP-CLI INI文件在所有版本中均保存在标准位置,以便简化管理。
/etc/php/cli.ini提供了两个空白INI文件,供您编写自定义INI设置:
使用-v your-file.ini:/etc/php/cli-custom.ini添加您的设置。这两个文件最后加载,因此其内容将优先于其他所有设置。
您可以使用环境变量设置大量PHP INI配置。
https://github.com/jtreminio/php-docker/blob/master/Dockerfile-env
您可以在此处了解更多详细信息
shelldocker container run -it --rm \ jtreminio/php-cli:8.1 php -i | grep display_errors 100:display_errors => Off => Off
对比
shelldocker container run -it --rm \ -e PHP.display_errors=1 \ jtreminio/php-cli:8.1 php -i | grep display_errors 100:display_errors => STDOUT => STDOUT
许多模块默认已安装并启用:
更多模块已安装但默认未启用:
PHP 7.4还包含:
您可以使用PHP_INI_SCAN_DIR环境变量启用这些模块。已创建特殊快捷方式以便更轻松地添加模块:
shelldocker container run -it --rm \ -e PHP_INI_SCAN_DIR=:/p/amqp:/p/mailparse \ jtreminio/php-cli:8.1 php -v
/p目录包含指向其他目录的符号链接(如果PHP版本支持该模块):
/p/amqp -> /etc/php/extra-mods/amqp /p/apcu -> /etc/php/extra-mods/apcu /p/geoip -> /etc/php/extra-mods/geoip /p/gnupg -> /etc/php/extra-mods/gnupg /p/imagick -> /etc/php/extra-mods/imagick /p/lua -> /etc/php/extra-mods/lua /p/mailparse -> /etc/php/extra-mods/mailparse /p/memcached -> /etc/php/extra-mods/memcached /p/mongodb -> /etc/php/extra-mods/mongodb /p/oauth -> /etc/php/extra-mods/oauth /p/pdo_sqlite -> /etc/php/extra-mods/pdo_sqlite /p/radius -> /etc/php/extra-mods/radius /p/raphf -> /etc/php/extra-mods/raphf /p/redis -> /etc/php/extra-mods/redis /p/solr -> /etc/php/extra-mods/solr /p/sqlite3 -> /etc/php/extra-mods/sqlite3 /p/ssh2 -> /etc/php/extra-mods/ssh2 /p/stomp -> /etc/php/extra-mods/stomp /p/uploadprogress -> /etc/php/extra-mods/uploadprogress /p/uuid -> /etc/php/extra-mods/uuid /p/xdebug -> /etc/php/extra-mods/xdebug /p/zmq -> /etc/php/extra-mods/zmq
您可以在PHP_INI_SCAN_DIR中添加任意数量的这些路径,确保以:开头。
您可以通过访问通过环境变量切换PHP模块了解更多详细信息。
Xdebug默认已安装但未启用:
shelldocker container run -it --rm jtreminio/php-cli:8.1 php -v PHP 8.1.2 (cli) (built: Jan 24 2022 10:42:15) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
要启用Xdebug(仅在非公共服务器上!),您可以使用PHP_INI_SCAN_DIR环境变量:
shelldocker container run -it --rm \ -e PHP_INI_SCAN_DIR=:/p/xdebug \ jtreminio/php-cli:8.1 php -v PHP 8.1.2 (cli) (built: Jan 24 2022 10:42:15) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans
注意:/p/xdebug中的前置:。
xdebug.remote_host默认设置为host.docker.internal。https://github.com/docker/for-linux/issues/264%E3%80%82%E6%82%A8%E5%BF%85%E9%A1%BB%E7%9B%B4%E6%8E%A5%E4%BC%A0%E9%80%92%E4%B8%BB%E6%9C%BAIP%E6%88%96%E4%BD%BF%E7%94%A8%E7%BD%91%E5%85%B3%E3%80%82%E5%A4%A7%E5%A4%9A%E6%95%B0%E6%83%85%E5%86%B5%E4%B8%8B%EF%BC%8C%60172.17.0.1%60%E5%8F%AF%E4%BB%A5%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C%EF%BC%9A
shelldocker container run -it --rm \ -e PHP_INI_SCAN_DIR=:/p/xdebug \ -e PHP.xdebug.client_host=172.17.0.1 \ jtreminio/php-cli:8.1 php -i | grep xdebug.client_host 639:xdebug.client_host => 172.17.0.1 => 172.17.0.1
已创建/usr/bin/xdebug辅助脚本,帮助您调试CLI应用程序。
要使用它,直接调用它而不是php:
shelldocker container run -it --rm \ jtreminio/php-cli:8.1 xdebug -v PHP 8.1.2 (cli) (built: Jan 24 2022 10:42:15) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务