我的任务是维护多个Web应用程序,所有这些应用程序都使用LAMP堆栈。其中一些在PHP 5.6上运行,一些在PHP 7.0上运行,一些使用Wordpress,一些使用Symfony ...理想情况下,我想在家庭测试/开发环境中设置与生产环境尽可能相同的环境。
我一直在研究Docker(警告:这里是新手!),看它是否适合我的需求。我将在Windows和Mac上工作,并且希望在我的计算机中具有多个LAMP环境,每个环境都具有各自的PHP / MySQL / etc版本,彼此隔离,并且所有环境都在同一环境中运行VM(因为否则,我最好只使用我熟悉的东西并设置不同的VM)。 Docker可以做到吗?
(很抱歉,这听起来像是一个愚蠢的问题:阅读有关Docker的信息,我的印象是容器哲学允许您精确地执行我所描述的操作,而不会浪费虚拟机等资源,但是,我还没有找到任何有关这方面的指南同时运行多个LAMP环境)。
答案 0 :(得分:3)
Php Docker堆栈可在生产和开发中运行Php应用程序,并使用Docker Compose Services运行任何Php版本,数据库,缓存,队列,日志等...
从现在开始,无需费心操弄操作系统,即可拥有完整的开发堆栈来构建我们出色的Php应用程序。
它可以通过composer包含在每个php项目中:
https://packagist.org/packages/exadra37-docker/php-docker-stack
或者,如果您愿意,也可以直接从here克隆它。
每个服务都带有一些默认映像,但都可以通过.env
进行配置,因此我们可以为docker compose文件中的任何受支持服务传递想要的任何docker映像。
Php Docker堆栈服务:
- Http-Nginx,Apache等
- Php-Php-Fpm。
- 数据库-Perconna,MariaDB,Mysql等
- 缓存-Redis,MemCached等
- 日志-Logstash-> ElasticSearch <-Kibana。
- 队列-Beenstalkd,RabbitMQ,ActiveMQ,Apache Kafka等
- Cron作业-仅用于安排cron作业。
- Dev CLI-访问容器外壳。
- 数据库CLI-就像MySQL出色的mycli propmt。
- 缓存CLI-类似于redis cli。
我每天都在从事开发工作时使用它。
我是它的作者,并且我需要一些本地增强功能,这些功能需要在上游进行完善和合并。
请随时尝试,如有任何疑问或反馈,请与我联系。
答案 1 :(得分:0)
好的,很多时间之后,我认为我应该分享自己找到的解决方案,并且我目前正在使用:devilbox。它很棒,一旦您掌握了它,它就会变得异常强大,灵活且可自定义。