本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
PHP开发专用Docker镜像,支持PHP 5.3-8.3版本和NodeJS 18/20/22版本,提供CLI、FPM、NGINX和Apache等多种运行环境,集成了开发所需的各种工具和扩展,旨在为PHP应用开发提供一致、便捷的开发环境。
可将镜像标签中的"virtuasa/"替换为"registry.smile.fr/smile-suisse/"以使用Smile仓库
virtuasa/php-dev:bookworm-sury
基于Debian的基础镜像,包含基础工具。
标签格式: virtuasa/php-dev:${PHP_VERSION}-${TYPE}-bookworm-sury
支持的PHP版本: 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2, 8.3
用于PHP命令行环境
virtuasa/php-dev:${PHP_VERSION}-cli-bookworm-suryvirtuasa/php-dev:8.3-cli-bookworm-sury包含PHP CLI和FPM服务
virtuasa/php-dev:${PHP_VERSION}-fpm-bookworm-suryvirtuasa/php-dev:8.3-fpm-bookworm-sury包含PHP CLI和NGINX网站服务
virtuasa/php-dev:${PHP_VERSION}-nginx-bookworm-suryvirtuasa/php-dev:8.3-nginx-bookworm-sury包含PHP CLI和Apache网站服务
virtuasa/php-dev:${PHP_VERSION}-apache-bookworm-suryvirtuasa/php-dev:8.3-apache-bookworm-sury标签格式: virtuasa/php-dev:${PHP_VERSION}-${TYPE}-node-${NODE_VERSION}-bookworm-sury
支持的NodeJS版本: 18, 20, 22
用于PHP命令行环境,包含NodeJS工具
virtuasa/php-dev:${PHP_VERSION}-cli-node-${NODE_VERSION}-bookworm-suryvirtuasa/php-dev:8.3-cli-node-22-bookworm-sury包含PHP CLI、FPM服务和NodeJS工具
virtuasa/php-dev:${PHP_VERSION}-fpm-node-${NODE_VERSION}-bookworm-suryvirtuasa/php-dev:8.3-fpm-node-22-bookworm-sury包含PHP CLI、NGINX网站服务和NodeJS工具
virtuasa/php-dev:${PHP_VERSION}-nginx-node-${NODE_VERSION}-bookworm-suryvirtuasa/php-dev:8.3-nginx-node-22-bookworm-sury包含PHP CLI、Apache网站服务和NodeJS工具
virtuasa/php-dev:${PHP_VERSION}-apache-node-${NODE_VERSION}-bookworm-suryvirtuasa/php-dev:8.3-apache-node-22-bookworm-sury| 组件 | 支持版本 | 说明 |
|---|---|---|
| PHP | 5.6-8.3 | 核心PHP运行环境 |
| XDebug | 全版本 | PHP调试工具 |
| blackfire | 全版本 | PHP性能分析工具 |
| composer | 全版本 | PHP依赖管理工具 |
| local-php-security-checker | 全版本 | PHP安全检查工具 |
| phive | 7.3+ | PHP归档管理工具 |
| Apache | 全版本 | Web服务器 |
| NGINX | 全版本 | Web服务器 |
| MSMTP | 全版本 | SMTP客户端 |
| NodeJs & npm | 18/20/22 | JavaScript运行时和包管理器(特定版本) |
| Yarn | 特定版本 | JavaScript包管理器 |
| Debian | bookworm | 基础操作系统 |
# PHP CLI示例 docker run --rm -v $(pwd):/data virtuasa/php-dev:8.3-cli-bookworm-sury php -v # Apache示例 docker run -d -p 8080:80 -v $(pwd):/data virtuasa/php-dev:8.3-apache-bookworm-sury
version: '3.9' services: web: image: virtuasa/php-dev:8.3-nginx-node-22-bookworm-sury user: ${FIXUID:-1000}:${FIXGID:-1000} volumes: - .:/data ports: - "8080:80" - "443:443" environment: - HISTFILE=/data/var/.docker_bash_history - HISTFILESIZE=1000 - DOCUMENT_ROOT=public - SSL_FORCE=yes - SERVER_NAMES=app.docker.local - XDEBUG_CLIENT_HOST=host.docker.internal extra_hosts: - 'host.docker.internal:host-gateway'
| 变量名 | 默认值 | 描述 |
|---|---|---|
HOSTNAME_LOCAL_ALIAS | `` | 解析到127.0.0.1的主机名别名列表,用逗号分隔 |
FIXUID | 1000 | Docker用户UID,应设置为开发者的UID |
FIXGID | 1000 | Docker用户GID,应设置为开发者的GID |
DOCKER_TIMEZONE | Europe/Zurich | Docker容器时区 |
LANG | C.UTF-8 | 系统 locale |
SMTP_MAILHUB | smtp.docker:25 | 邮件发送主机,格式为host[:port],默认端口25 |
SMTP_AUTH_USER | | SMTP认证用户名,为空则不使用SMTP认证 |
SMTP_AUTH_PASS | | SMTP认证密码 |
SMTP_SENDER_HOSTNAME | | 发件人主机全名,未指定则查询主机名 |
DOCKER_CUSTOM_INIT | | 容器创建时执行的初始化脚本 |
DOCKER_COPY_DIR_TO_ETC | | 复制目录内容到/etc,并处理*.j2文件 |
DOCKER_COPY_DIR_TO_BIN | | 复制目录内容到/user/local/bin |
DOCKER_MKDIR | | 使用mkdir -p创建指定目录 |
| 变量名 | 默认值 | 描述 |
|---|---|---|
WRITABLE_PATH | var | Apache或Nginx可写文件夹列表,空格分隔 |
VAR_DIR | var | 应用程序日志存储目录 |
XDEBUG_MAIN_HOST | localhost | CLI调试的XDEBUG主主机 |
XDEBUG_DISABLE | | 设置为"yes"禁用XDEBUG |
XDEBUG_CLIENT_HOST | | XDEBUG客户端主机,建议值host.docker.internal |
BLACKFIRE_CLIENT_ID | | Blackfire客户端ID |
BLACKFIRE_CLIENT_TOKEN | | Blackfire客户端Token |
BLACKFIRE_SERVER_ID | | Blackfire服务器ID |
BLACKFIRE_SERVER_TOKEN | | Blackfire服务器Token |
MOUNT_DIR | /data | 容器内Docker挂载路径 |
PHP_MEMORY_LIMIT | 512M | PHP脚本最大内存限制 |
ACL_ENABLE | | 设置为"yes"在容器启动时执行setfacl |
| 变量名 | 默认值 | 描述 |
|---|---|---|
DOCUMENT_ROOT | public | Apache文档根目录路径,为空则使用项目根目录 |
SERVER_NAMES | `` | 服务器名称和别名,逗号分隔 |
SSL_CERT_KEY | /etc/ssl/private/ssl-cert-snakeoil.key | Apache SSL私钥路径 |
SSL_CERT_PEM | /etc/ssl/certs/ssl-cert-snakeoil.pem | Apache SSL证书路径 |
SSL_CERT_CA | `` | SSL证书链,PEM编码的CA证书 |
SSL_FORCE | `` | 设置为"yes"强制HTTP重定向到HTTPS |
| 变量名 | 默认值 | 描述 |
|---|---|---|
DOCUMENT_ROOT | public | Nginx文档根目录路径,为空则使用项目根目录 |
SERVER_NAMES | `` | Nginx服务器名称,逗号分隔 |
SSL_CERT_KEY | /etc/ssl/private/ssl-cert-snakeoil.key | Nginx SSL私钥路径 |
SSL_CERT_PEM | /etc/ssl/certs/ssl-cert-snakeoil.pem | Nginx SSL证书和证书链路径 |
SSL_FORCE | `` | 设置为"yes"强制HTTP重定向到HTTPS |
注意:
- 带*的路径是相对于Docker容器挂载路径,即项目根目录
- 带**的路径是Docker容器内的绝对路径,如果需要,不要忘记添加/data挂载路径
如果主机Linux用户ID不是1000(可通过id命令检查),请将全局变量设置为您的会话ID:
printf "FIXUID=`id -u`\nFIXGID=`id -g`" >> ~/.profile
使用docker-compose文件时,为容器设置user参数:
user: ${FIXUID:-1000}:${FIXGID:-1000}
要使用Blackfire.io分析PHP脚本,需要在官网创建个人账户。
在计算机上定义以下环境变量,从blackfire.io设置/凭据获取值:
BLACKFIRE_CLIENT_ID="<Client ID>" BLACKFIRE_CLIENT_TOKEN="<Client Token>" BLACKFIRE_SERVER_ID="<Server ID>" BLACKFIRE_SERVER_TOKEN="<Server Token>"
可将这些值放入~/.profile文件中,以便计算机重启后保留这些信息。无需重启计算机,只需导出变量并执行docker up。
分析方法:
blackfire run <php命令>| 命令 | 描述 |
|---|---|
xdebug-disable | 完全禁用XDebug,提高性能(HTTP和CLI) |
xdebug-disable-autostart | 禁用每次HTTP调用时XDebug自动启动 |
xdebug-enable | 完全启用XDebug,用于调试(HTTP和CLI) |
xdebug-enable-autostart | 启用每次HTTP调用时XDebug自动启动 |
php-xdebug <php脚本和参数> | 使用XDebug运行PHP CLI命令 |
php-no-xdebug <php脚本和参数> | 不使用XDebug运行PHP CLI命令 |
php-profile <php脚本和参数> | 运行带性能分析的PHP CLI命令,生成分析文件 |
docker-php-ext-disable ext-name [ext-name ...] | 禁用PHP扩展 |
docker-php-ext-enable ext-name [ext-name ...] | 启用PHP扩展 |
docker-php-ext-install ext-name [ext-name ...] | 安装PHP扩展 |
blackfire-disable | 禁用Blackfire.io模块和代理 |
blackfire-enable | 启用Blackfire.io模块和代理(自动禁用xdebug) |
blackfire run <php脚本和参数> | 运行带Blackfire.io分析的CLI脚本(需先启用Blackfire) |
local-php-security-checker | 运行PHP安全检查工具 |
composer | PHP依赖管理工具 |
使用make help查看构建目标。
示例:
make all 构建所有镜像make all-php 构建所有PHP镜像make base php-8.3 php-8.3-node-18 构建特定版本镜像
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429