phpexperts / dockerize
将任何PHP应用程序/库快速便捷地切换到使用Docker的最简单方法。
Suggests
- phpexperts/docker-phan: Dockerized phan/phan
- phpexperts/docker-phpstan: Dockerized phpstan/phpstan
- phpexperts/docker-rector: Dockerized rector/rector
- v11.0.x-dev
- v11.0.0
- v10.0.x-dev
- v10.0.3
- v10.0.2
- v10.0.1
- v10.0.0
- v9.2.x-dev
- v9.2.2
- v9.2.1
- v9.2.0
- v9.1.x-dev
- v9.1.2
- v9.1.1
- v9.1.0
- v9.0.x-dev
- v9.0.1
- v9.0.0
- v8.3.x-dev
- v8.2.x-dev
- v8.2.0
- v8.1.x-dev
- v8.1.0
- v8.0.x-dev
- v8.0.1
- v8.0.0
- v7.2.x-dev
- v7.2.1
- v7.2.0
- v7.1.x-dev
- v7.1.2
- v7.1.1
- v7.1.0
- v7.0.x-dev
- v7.0.0
- v6.6.x-dev
- v6.6.0
- v6.5.x-dev
- v6.5.0
- v6.4.1
- v6.4.0
- v6.2.1
- v6.2
- v6.1
- v6.0
- v5.0.2
- v5.0.1
- v5.0
- dev-oracle-oci8
- dev-ioncube_support
This package is auto-updated.
Last update: 2024-09-12 10:32:04 UTC
README
这是一个用于快速部署Docker(适用于PHP应用程序的实用工具)的工具。
观看零依赖安装视频: https://youtu.be/d8o9p2DimME
在2分钟内安装旧版PHP 5.6应用程序: https://youtu.be/xZxaJcsbrWU
该项目已针对350,000多个开源的Packagist软件包进行了测试(通过Bettergist Archiver项目),并与其中99.999%兼容。
包含
- PHP 5.6, 7.0-7.4 + 8.0, 8.1, 8.2, 和 8.3,以及 8.4-beta4。
- Nginx
- Redis v7.2
- PostgreSQL v16
- MariaDB v10.11
- Oracle ext-oci
phpexperts/php:VESION-full
镜像包含所有捆绑的PHP扩展和Redis。
- imap
- ldap
- pspell
- redis
- snmp
- xmlrpc
phpexperts/php:VERSION-oracle
镜像包含完整镜像中的所有内容,以及Oracle(ext-oci8)的驱动程序。
如果您需要full
构建中不可用的扩展,请在GitHub上创建一个问题。
安装
- 观看 安装指南视频。
通过Bash(零PHP依赖项)
bash <(curl -s 'https://raw.githubusercontent.com/PHPExpertsInc/dockerize/v10.0/dockerize.sh')
然后编辑.env中的凭证。
docker compose up -d
通过Composer
# Ensure that vendor/bin is in your PATH and before /usr/bin.
composer require --dev phpexperts/dockerize
vendor/bin/php dockerize
# Edit credentials in .env.
docker-compose up -d
别忘了编辑你的docker-compose.yml!
配置你的PATH
为了将现有的PHP项目dockerize,请执行以下操作
确保你的profile PATH包含./vendor/bin
,并且它比任何可能包含php可执行文件的目录具有优先级
PATH=./vendor/bin:$PATH
感谢,JetBrains
JetBrains慷慨地授予本项目免费的开放源代码许可证,以用于PhpStorm和所有其他JetBrains产品,作为其开放源代码许可证倡议的一部分。
与其他dockerized PHP项目相比的优势
- 超级快速,完全自动安装。(非常适合在CI上测试多个版本)
- 与www.phpdocker.io相比,Dockerize PHP的最大区别在于,Dockerize PHP提供了所有客户端工具,而phpdocker.io则没有提供任何工具。
开箱即用,每个项目都有自己的二进制文件
- php
- composer
- php-ci.sh
- mysql
- mysqldump
- psql
- pg_dump
- createdb
- dropdb
- redis
- redis-cli
通过Docker进行PHP CI
使用php-ci.sh
shell脚本,你可以轻松测试你的应用程序或库与每个主要的PHP版本(目前为7.4-8.3)兼容性
在你的phpunit.xml所在的项目根目录,或者你通常运行phpunit的地方
vendor/bin/php-ci.sh
然后它将自动更新composer并运行适用于你项目支持的所有主要PHP版本的适当版本的PHPUnit,通过Docker的力量。
最新更改
v11.0.0
- [2024-09-07 18:55:07 CDT] [主要] 升级到Ubuntu 24.04 Noble Numbat。
- [2024-09-07 18:55:45 CDT] 通过重新添加php-fpm修复了web调试中的重大回滚。
- [2024-09-07 17:20:24 CDT] 为创建distroless PHP镜像添加了初始步骤。origin/v11.0
- [2024-09-07 19:00:42 CDT] 使用docker volume存储apt元数据。
v10.0.3
- [2024-06-29 10:13:12 CDT] [php-ci] 从composer.json动态获取并计算支持的PHP版本。
- 【2024-06-29 10:20:39 CDT】 [php-ci] 如果没有针对特定版本的xml,则使用phpunit的默认配置。
- 【2024-06-29 10:20:48 CDT】 [php-ci] 增加了对PHPUnit v11的支持。
- 【2024-06-29 10:31:50 CDT】 为SEO创建一个Packagist别名到phpexperts/dockerise。
v10.0.2
- 【2024-06-26 00:57:05 CDT】 添加了我的php-ci.sh脚本。
v10.0.0
- 【2024-05-24 07:40:15 CDT】 添加了一个全面的零依赖Bash-via-curl安装器。
- 【2024-05-24 07:31:26 CDT】 添加了一个找到nginx的第一个开放HTTP端口的机制。master
- 【2024-05-24 07:30:16 CDT】 Redis从docker中移除v7.3,切换到v7.2。
v9.2.1
- 【2024-05-23 08:17:00 CDT】 升级到MariaDB 10.11,Redis 7.3和Postgres 16。
v9.2.0
- 【2024-05-21 21:31:26 CDT】 配置了它,以便composer将运行安装脚本。
v9.1.2
- 【2024-05-21 06:27:48 CDT】 修复了docker logs被截断的问题。origin/v9。
v9.1.1
- 【2024-01-16 03:15:49 CST】 [重大] 修复了一个阻止在定义了网络的项目中运行dockerized php CLI的临界错误。
- 【2024-01-14 14:22:31 CST】 修复了Docker安装器。
- 【2024-01-14 14:13:58 CST】 更改了安装器的名称。
- 【2024-01-14 14:12:02 CST】 将安装器从wget切换到curl。
v9.1.0: 新零依赖Bash安装器
- 【2024-01-14 07:06:07 CST】 添加了一个零PHP依赖的Bash安装器。
- 【2024-01-14 07:04:47 CST】 在基本Linux镜像中添加了对Linux ACLs的支持。
- 【2024-01-14 07:03:35 CST】 修复了base-oracle中的docker构建错误。
v9.0.1
- 【2024-01-14 06:40:56 CDT】 [重大] 修复了一个阻止在新建项目中运行dockerized php CLI的临界错误。
v9.0.0: 版本 9.0.0: 新全PHP镜像,Oracle ext-oci8和新的构建系统。
- 【2024-01-13 23:04:49 CST】 添加了针对Ubuntu 22.04构建的Oracle ext-oci8二进制文件。
- 【2024-01-13 22:51:39 CST】 添加了一个包含Oracle DB的ext-oci8扩展的docker构建。
- 【2024-01-13 22:50:16 CST】 添加了wget到基本PHP镜像。
- 【2024-01-12 17:30:47 CST】 重构了IonCube构建,以便扩展只下载一次。
- 【2024-01-12 14:49:27 CST】 添加了一个包含每个捆绑PHP扩展以及更多内容的
full
docker构建。
使用docker-compose管理
使用docker-compose
来控制容器。
# Downloads the images, creates and launches the containers.
docker-compose up -d
# View the logs
docker-compose logs -ft
# Stop the containers
docker-compose stop
这就完了!现在您拥有了最新的LEPP(Linux、Nginx、PostgreSQL、PHP)堆栈或最新的LEMP(Linux、Nginx、MariaDB、PHP)堆栈。
用户ID控制
可以控制初始进程(通常是PHP)和/或PHP-FPM进程以哪个UID运行。bin/php
文件已经为初始进程做了这件事。
如果您正在将卷挂载到容器中,这很重要,因为初始进程或PHP-FPM的UID可能需要与卷匹配,才能读取和/或写入它。
PHP-FPM进程UID
要设置PHP-FPM进程的UID,应在容器上设置PHP_FPM_USER_ID
环境变量。例如
docker run -e PHP_FPM_USER_ID=1000 phpexperts/php:7 php-fpm5.6
php.ini指令
您可以通过在容器内设置环境变量来修改某些php.ini指令。以下是一份环境变量和它们对应的php.ini指令列表
例如,以下将启动一个将post_max_size
设置为30兆字节的PHP容器
docker run -e PHP_POST_MAX_SIZE=30M phpexperts/php:7
分发
Docker Hub
关于PHP Experts, Inc.
《PHP Experts, Inc.》是我的咨询公司。[https://www.phpexperts.pro/](https://www.phpexperts.pro/),它是一家由包括我在内大约半打技术精湛的全栈PHP开发者组成的小公司。我将他们安置在其他公司的1099职位上。我们提供长期职位,对于像我这样的疯狂开发者来说,也提供短期职位。如果你想要每几个月或几周就参与不同的项目/公司,无论在美国大陆、欧洲还是东南亚的任何地方,那都是一件非常棒的事情。
自2015年以来,我在拉斯维加斯、休斯顿、英国、都柏林、哥斯达黎加、哥伦比亚、印度和菲律宾设立了分支机构。如果有人在其中的任何地方拥有工作许可,我们几乎可以把你安置在你想要去的地方。出于个人选择,我有一半的时间在旅行。走遍全世界。