wonderpanda / enterprise-laravel
此包已被废弃且不再维护。未建议替代包。
基于最佳实践的强大而简单的Docker环境,适用于开发和生产环境
dev-master
2019-09-20 17:59 UTC
This package is auto-updated.
Last update: 2020-07-21 10:56:32 UTC
README
我应该为我的下一个企业项目使用这个吗?
不,还不是。我能看到讽刺之处。这还是一个正在进行中的项目
说明
composer require wonderpanda/enterprise-laravelphp artisan vendor:publish --provider='EnterpriseLaravel\EnvironmentProvider'
目标
- 简单AF。只需运行
docker-compose up - 只需使用Docker。在任何安装了Docker的地方都可以使用,我们也爱Windows开发者
- 开发机器上无需安装PHP。这包括Composer和PHP Artisan CLI交互。不再有“在我的机器上可行”的综合征
- 简单的调试。调试你的源代码不应该需要数小时
- 在将部署到生产环境的相同容器上进行开发。通过配置而不是臃肿的自定义Dockerfile来仅启用开发所需的功能
- 将测试作为一等公民。使用真实的数据库(就像在生产环境中一样)
- NGINX和FPM的正常默认值。通过外部配置文件进行完全可定制
- 开箱即用的Git Hooks自动代码格式化。不再有关于代码格式的PR斗争
- 小型的基于Alpine的容器
设计决策
它只是Docker
在查看针对PHP应用程序的完整解决方案的广泛生态系统中的不同选项后,我认为最好的是Vessel。向构建这个项目的团队大声致敬,因为他们肯定有一些工作让我受到了启发。
与Vessel项目的一个主要区别是缺少bash脚本来封装与Docker的大多数交互。此项目完全拥抱Docker,并认为了解如何直接与之交互非常重要。然而,将重复性任务委托给更可重用的格式(如Makefile、JS、Bash或其他脚本平台)是非常容易的。
为NGINX和FPM使用单独的容器
- 使用Supervisor违反了现代(例如K8s)平台背后的理念,这些平台期望完全处理编排。一个不健康的容器可能会被Supervisor“保持活动状态”,因为它会继续重新启动一个不健康的进程,而不是允许更合适的编排器来处理这个问题
- 可以在单个NGINX容器后面负载均衡多个FPM容器,以在规模上分离独立的工作负载
- 可以更容易地利用经过社区验证的核心镜像来为NGINX和PHP-FPM,这两个都允许在不构建和采用自定义镜像的情况下,在不同基于Linux的环境中运行
许可证
本项目是开源软件,遵循 MIT 许可协议。