可直接运行的多版本PHP共存的Docker环境,目前支持 php5.6 / php7.2 / php7.4 共存。
已经在公司推广使用,自己目前的开发环境就用的这一套,且已用一段时间。
项目地址:
https://github.com/qianyugang/docker-mutli-php-versions
文件结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| ├── conf │ ├── nginx │ │ ├── conf.d │ │ │ ├── php56site.com.conf │ │ │ ├── php72site.com.conf │ │ │ └── php74site.com.conf │ │ └── nginx.conf │ └── php │ ├── php-fpm.d │ │ └── www.conf │ └── php.ini ├── docker-compose.yml ├── log │ ├── nginx │ │ ├── access.log │ │ └── error.log │ └── php-fpm ├── php │ ├── php56 │ │ └── Dockerfile │ ├── php72 │ │ └── Dockerfile │ └── php74 │ └── Dockerfile ├── readme.md └── site ├── php56site │ └── index.php ├── php72site │ └── index.php └── php74site └── index.php
|
使用方法
启动:
停止:
重启 nginx
1
| docker-composer restart nginx
|
进入 php 容器
1 2 3 4 5
| docker-compose exec php56 /bin/bash docker-compose exec php72 /bin/bash docker-compose exec php74 /bin/bash
|
注意事项
- 本地host配置
- PHP插件安装
- 在对应PHP版本的Dockerfile文件中使用
docker-php-ext-install
安装
- docker内网连接ip问题
- 如果需要从内网中连接使用宿主机的ip,mac版本需要使用内置
docker.for.mac.host.internal
作为ip配置。
- docker源问题
- 容器内域名请求
- 使用network中的alias别名实现容器内域名请求
参考