本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
本项目提供基于wayofdev/docker-php-base构建的PHP开发环境Docker镜像,旨在为本地开发提供便捷、功能丰富的解决方案,可作为Laravel Sail的替代方案使用。
在基础镜像提供的扩展之上,本开发镜像额外包含以下扩展:
| 扩展名称 | 描述 | 类型 |
|---|---|---|
| xdebug | PHP调试扩展 | pecl |
| 工具名称 | 类型 | 说明 |
|---|---|---|
| git | apk | 版本控制系统 |
| bash | apk | Bourne-Again Shell |
| unzip | apk | 压缩文件解压工具 |
| nano | apk | 轻量级文本编辑器 |
| libfaketime | apk | 用户空间时间伪造库,用于测试时间逻辑 |
| wait4x | apk | 服务就绪检查工具,支持TCP/HTTP等协议 |
| composer | bin | PHP依赖管理工具 |
本镜像适用于以下开发场景:
使用docker pull命令拉取指定版本镜像:
docker pull wayofdev/php-dev:8.3-fpm-alpine-latest
标签格式说明:{PHP版本}-{类型}-{系统}-{版本},例如8.3-fpm-alpine-latest表示:
cli:仅包含PHP命令行解释器fpm:包含PHP-FPM进程管理器supervisord:集成Supervisord进程管理工具# PHP 8.1 CLI版本 docker pull wayofdev/php-dev:8.1-cli-alpine-latest # PHP 8.2 FPM版本 docker pull wayofdev/php-dev:8.2-fpm-alpine-latest # PHP 8.3 Supervisord版本 docker pull wayofdev/php-dev:8.3-supervisord-alpine-latest
以下是Laravel项目的完整Docker Compose配置示例,包含PHP应用服务与Nginx Web服务:
services: app: image: wayofdev/php-dev:8.3-fpm-alpine-latest container_name: ${COMPOSE_PROJECT_NAME}-app restart: on-failure # 失败时自动重启 networks: - default - shared depends_on: - database # 依赖数据库服务启动 links: - database volumes: - ./.github/assets:/assets:rw,cached # 静态资源目录 - ./app:/app:rw,cached # 应用代码目录(rw表示读写,cached优化性能) - ./.env:/app/.env # 环境变量文件挂载 - ~/.composer:/.composer # Composer缓存目录(加速依赖安装) - ~/.ssh:/home/www-data/.ssh:ro # SSH密钥目录(只读权限) environment: FAKETIME: '+2h' # 设置伪造时间(如提前2小时),用于测试时间逻辑 XDEBUG_MODE: '${XDEBUG_MODE:-off}' # Xdebug模式,默认关闭 PHIVE_HOME: /app/.phive # Phive工具的家目录 dns: - 8.8.8.8 # 配置Google DNS extra_hosts: - 'host.docker.internal:host-gateway' # 允许容器访问宿主机服务 web: image: wayofdev/nginx:k8s-alpine-latest # 配套Nginx镜像 container_name: ${COMPOSE_PROJECT_NAME}-web restart: on-failure networks: - default - shared depends_on: - app # 依赖PHP服务启动 links: - app volumes: - ./app:/app:rw,cached # 共享应用代码目录 - ./.env:/app/.env # 共享环境变量文件 labels: # Traefik反向代理配置 - traefik.enable=true - traefik.http.routers.api-${COMPOSE_PROJECT_NAME}-secure.rule=Host(`api.${COMPOSE_PROJECT_NAME}.docker`) - traefik.http.routers.api-${COMPOSE_PROJECT_NAME}-secure.entrypoints=websecure - traefik.http.routers.api-${COMPOSE_PROJECT_NAME}-secure.tls=true - traefik.http.services.api-${COMPOSE_PROJECT_NAME}-secure.load***.server.port=8880 - traefik.docker.network=network.${SHARED_SERVICES_NAMESPACE}
| 环境变量 | 描述 | 默认值 | 可选值 |
|---|---|---|---|
| FAKETIME | 通过libfaketime设置进程时间,格式支持+2h(相对时间)或2024-01-01(绝对时间) | 未设置 | 时间字符串(如+30m、2023-12-31 23:59) |
| XDEBUG_MODE | Xdebug运行模式控制 | off | off/debug/develop/coverage/trace |
| PHIVE_HOME | Phive(PHP依赖管理工具)的配置存储目录 | /app/.phive | 绝对路径 |
如需构建或修改本镜像,需满足以下依赖:
git clone ***:wayofdev/docker-php-dev.git && \ cd docker-php-dev
使用Ansible从Jinja2模板生成目标Dockerfile:
make generate
构建默认镜像(由IMAGE_TEMPLATE变量指定,默认8.3-fpm-alpine):
make build
构建指定镜像:
make build IMAGE_TEMPLATE="8.3-fpm-alpine"
构建所有变体:
# PHP 8.1系列 make build IMAGE_TEMPLATE="8.1-cli-alpine" make build IMAGE_TEMPLATE="8.1-fpm-alpine" make build IMAGE_TEMPLATE="8.1-supervisord-alpine" # PHP 8.2系列 make build IMAGE_TEMPLATE="8.2-cli-alpine" make build IMAGE_TEMPLATE="8.2-fpm-alpine" make build IMAGE_TEMPLATE="8.2-supervisord-alpine" # PHP 8.3系列 make build IMAGE_TEMPLATE="8.3-cli-alpine" make build IMAGE_TEMPLATE="8.3-fpm-alpine" make build IMAGE_TEMPLATE="8.3-supervisord-alpine" # PHP 8.4系列 make build IMAGE_TEMPLATE="8.4-cli-alpine" make build IMAGE_TEMPLATE="8.4-fpm-alpine" make build IMAGE_TEMPLATE="8.4-supervisord-alpine"
使用make test命令执行镜像验证测试:
测试默认镜像:
make test
测试指定镜像:
make test IMAGE_TEMPLATE="8.3-fpm-alpine"
测试用例通过goss.yaml文件定义(针对每个镜像变体生成),包含以下验证项:
本项目遵循安全策略,包含漏洞披露流程和响应机制。
欢迎参与贡献!可通过以下方式参与:
本项目基于MIT许可证开源,详情参见许可证文件。

免费版仅支持 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