
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
提供预配置、可定制的PHP + Nginx环境,支持多个运行时版本,集成Behance的https://github.com/behance/docker-nginx%E3%80%82%E9%95%9C%E5%83%8F%E5%B7%B2%E5%8F%91%E5%B8%83%E4%BA%8Ehttps://hub.docker.com/r/behance/docker-php/%E3%80%82
bashdocker run behance/docker-php:7.4-alpine "php" "-v" docker run behance/docker-php:7.4 "php" "-v" docker run behance/docker-php:8.0 "php" "-v"
PHP_MAJOR.PHP_MINOR(-Major.Minor.Patch)(-variant)PHP_MAJOR.PHP_MINOR(必填):PHP引擎版本,如 docker-php:8.0(Major.Minor.Patch)(可选):容器配置代码的语义化版本,如 docker-php:7.4-13.4.0(-variant)(可选):Alpine变体为精简版本,如 docker-php:7.4-alpinegoss -g /tests/php-fpm/{PHP_MAJOR.PHP_MINOR}(-variant).goss.yaml 可验证配置更新
^- 不在-alpine变体中可用
~- 默认禁用
dockerfileFROM behance/docker-php:8.0 # (可选,推荐)验证父镜像配置 RUN goss -g /tests/php-fpm/8.0.goss.yaml validate && /aufs_hack.sh # 将本地代码复制到运行时目录 COPY ./ /app/ # 完成
/app 目录,例如:COPY ./ /app//app/public/index.php/app 目录进行本地开发,例如 docker-compose.yml 配置:
yamlvolumes: - ./:/app
CFG_APP_DEBUG=0,容器变为不可变,PHP opcache不检查文件更新,提升性能8080REPLACE_NEWRELIC_APP 和 REPLACE_NEWRELIC_LICENSE 自动启用NEWRELIC_TRACING_ENABLED=true 启用NEWRELIC_LOGLEVEL 覆盖默认日志级别(当前为 warning),可选值:info、debug、verbosedebugNEWRELIC_SPECIAL 为NewRelic支持团队要求的值,启用特殊调试模式/__status 访问,健康检查可通过 http://127.0.0.1/__status?json 获取统计信息;如需开放给更多客户端,修改 $CONF_NGINX_SITE(/etc/nginx/sites-available/default)中 __status 位置块的 allow 语句/__nginx_status 访问,健康检查可通过 http://127.0.0.1/__nginx_status 获取统计信息;如需开放给更多客户端,修改 $CONF_NGINX_SITE 中 __nginx_status 位置块的 allow 语句提供多种常用扩展,可按需启用或禁用。
启用内置但禁用的扩展
Ubuntu(默认):
bash# phpenmod XXX
Alpine变体:
bash# sed -i "s/^;ext/ext/" $CONF_PHPMODS/XXX.ini
禁用内置扩展
Ubuntu(默认):
bash# phpdismod XXX
Alpine变体:
bash# sed -i "s/ext/;ext/" $CONF_PHPMODS/XXX.ini
可通过环境变量调整PHP-FPM和Nginx参数,无需重新构建镜像。
更多配置选项参见父项目:
| 变量 | 示例 | 默认值 | 描述 |
|---|---|---|---|
| (all) | DATABASE_HOST=master.rds.aws.com | - | PHP默认可访问环境变量 |
| CFG_APP_DEBUG | CFG_APP_DEBUG=1 | 1 | 设置为 1 或 true 时,opcache监控文件变化;设置为0(生产模式)提升性能,文件更新需重置opcache |
| CFG_XDEBUG_ENABLE | CFG_XDEBUG_ENABLE=1 | - | 设置为 1 或 true 启用XDebug扩展,预配置支持远程调试和分析;需启用 CFG_APP_DEBUG(开发模式) |
| SERVER_MAX_BODY_SIZE | SERVER_MAX_BODY_SIZE=4M | 1M | 设置Nginx服务器级 client_max_body_size 配置 |
| SERVER_FASTCGI_BUFFERS | SERVER_FASTCGI_BUFFERS='512 32k' | 256 16k | 文档,https://gist.github.com/magnetikonline/***#determine-actual-fastcgi-response-sizes |
| SERVER_FASTCGI_BUFFER_SIZE | SERVER_FASTCGI_BUFFER_SIZE='256k' | 128k | 文档,https://gist.github.com/magnetikonline/***#determine-actual-fastcgi-response-sizes |
| SERVER_FASTCGI_BUSY_BUFFERS_SIZE | SERVER_FASTCGI_BUSY_BUFFERS_SIZE='1024k' | 256k | 文档 |
| REPLACE_NEWRELIC_APP | REPLACE_NEWRELIC_APP=prod-server-abc | - | 设置NewRelic应用名称 |
| REPLACE_NEWRELIC_LICENSE | REPLACE_NEWRELIC_LICENSE=abcdefg | - | 设置NewRelic许可证,与上述变量配合启用NewRelic报告 |
| NEWRELIC_TRACING_ENABLED | NEWRELIC_TRACING_ENABLED=true | disabled | 启用NewRelic事务追踪和分布式追踪,需配合上述NewRelic变量 |
| NEWRELIC_LOGLEVEL | NEWRELIC_LOGLEVEL=verbosedebug | - | 覆盖 newrelic.loglevel 和 newrelic.daemon.loglevel 默认值,可选:warning、info、debug、verbosedebug |
| NEWRELIC_SPECIAL | NEWRELIC_SPECIAL=debug_autorum | - | NewRelic特殊调试配置,按支持团队要求设置 |
| PHP_FPM_MEMORY_LIMIT | PHP_FPM_MEMORY_LIMIT=256M | 192MB | 设置PHP-FPM实例内存限制 |
| PHP_FPM_MAX_EXECUTION_TIME | PHP_FPM_MAX_EXECUTION_TIME=30 | 60 | 设置PHP-FPM工作进程执行时间限制 |
| PHP_FPM_UPLOAD_MAX_FILESIZE | PHP_FPM_UPLOAD_MAX_FILESIZE=100M | 1M | 同时设置 upload_max_filesize 和 post_max_size |
| PHP_FPM_MAX_CHILDREN | PHP_FPM_MAX_CHILDREN=15 | 4096 | 文档 |
| PHP_FPM_START_SERVERS | PHP_FPM_START_SERVERS=40 | 20 | 文档 |
| PHP_FPM_MAX_REQUESTS | PHP_FPM_MAX_REQUESTS=100 | 1024 | 文档,单个FPM工作进程处理的请求数上限 |
| PHP_FPM_MIN_SPARE_SERVERS | PHP_FPM_MIN_SPARE_SERVERS=10 | 5 | 文档 |
| PHP_OPCACHE_MEMORY_CONSUMPTION | PHP_OPCACHE_MEMORY_CONSUMPTION=512 | 128 | 文档 |
| PHP_OPCACHE_MAX_WASTED_PERCENTAGE | PHP_OPCACHE_MAX_WASTED_PERCENTAGE=10 | 5 | 文档 |
| PHP_OPCACHE_INTERNED_STRINGS_BUFFER | PHP_OPCACHE_INTERNED_STRINGS_BUFFER=64 | 16 | 文档 |
| PHP_OPCACHE_FILE_CACHE | PHP_OPCACHE_FILE_CACHE=/tmp | - | 文档 |
| PHP_OPCACHE_ENABLE_CLI | PHP_OPCACHE_ENABLE_CLI=0 | 1 | 文档 |
| PHP_OPCACHE_PRELOAD | PHP_OPCACHE_PRELOAD=/etc/php/preload.php | - | 文档 |
| PHP_FPM_LOG_LIMIT | PHP_FPM_LOG_LIMIT=4096 | 1024 | PHP 7.3+,配置标准输出消息最大长度 文档 |
| PHP_FPM_LOG_BUFFERING | PHP_FPM_LOG_BUFFERING=no | yes | PHP 7.3+ 文档 |
bash、docker 和 dgoss (https://github.com/aelsabbahy/goss/blob/master/extras/dgoss/README.md)本地测试命令:PHP_VARIANT=8.0 ./test.sh {docker引擎IP},将:
PHP_VARIANT 的容器(如 7.4-alpine、7.4、8.0)GitHub Actions提供测试(ci.yaml)和通过Docker Hub分发标签(publish.yaml)的机制。测试将验证Nginx在各种配置下的内容服务能力及TLS终止功能。合并经测试和批准的PR后,创建语义化版本标签将生成多版本构建矩阵(参见容器标签格式)。
平台支持多架构:
linux/amd64:Ubuntu和Alpine变体linux/arm64:仅Ubuntu变体添加基于新Dockerfile的变体时,需在 ./github/workflows YAML文件的 matrix.props 中添加条目。
docker-nginx使用GitHub Actions进行CI/CD。可通过 act 在本地模拟工作流,所有命令需在仓库根目录执行。
前置要求(Mac测试通过):
拉取请求模拟:在ARM设备(如Apple M1)上可成功执行;X64设备通过QEMU的ARM模拟暂不支持nginx所需的完整内核功能
act pull_request发布模拟:执行但因缺少凭据而失败(预期行为)
act您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务