使用Docker同时运行多个Web开发环境

时间:2019-01-29 21:53:10

标签: php docker lamp

我的任务是维护多个Web应用程序,所有这些应用程序都使用LAMP堆栈。其中一些在PHP 5.6上运行,一些在PHP 7.0上运行,一些使用Wordpress,一些使用Symfony ...理想情况下,我想在家庭测试/开发环境中设置与生产环境尽可能相同的环境。

我一直在研究Docker(警告:这里是新手!),看它是否适合我的需求。我将在Windows和Mac上工作,并且希望在我的计算机中具有多个LAMP环境,每个环境都具有各自的PHP / MySQL / etc版本,彼此隔离,并且所有环境都在同一环境中运行VM(因为否则,我最好只使用我熟悉的东西并设置不同的VM)。 Docker可以做到吗?

(很抱歉,这听起来像是一个愚蠢的问题:阅读有关Docker的信息,我的印象是容器哲学允许您精确地执行我所描述的操作,而不会浪费虚拟机等资源,但是,我还没有找到任何有关这方面的指南同时运行多个LAMP环境)。

2 个答案:

答案 0 :(得分:3)

Php Docker堆栈

  

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。它很棒,一旦您掌握了它,它就会变得异常强大,灵活且可自定义。