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

Using Docker to run several web development environments at the same time

我的任务是维护几个 Web 应用程序,它们都使用 LAMP 堆栈。其中一些 运行 在 PHP 5.6 上,一些在 PHP 7.0 上,一些使用 Wordpress,一些使用 Symfony...理想情况下,我想在家设置 testing/development 与生产环境尽可能相同的环境。

我一直在调查 Docker(警告:这里是新手!)看看它是否适合我的需要。我将致力于 Windows 和 Mac,并且我希望在我的机器中有几个 LAMP 环境,每个环境都有它们的 PHP/MySQL/etc 版本,彼此隔离,并且所有这些 运行 都在同一个 VM 中(因为否则我可能只使用我熟悉的东西并设置不同的 VM)。 Docker 可以做到吗?

(很抱歉,如果这听起来像是一个愚蠢的问题:阅读 Docker,我的印象是容器理念允许您精确地执行我描述的操作,而不会像使用 VM 那样浪费资源,但是,我还没有未找到任何有关 运行 同时设置多个 LAMP 环境的指南。

Php Docker 堆栈

Php Docker stack to run Php Apps in Production and Development, using Docker Compose Services to run any Php version, Databases, Cache, Queues, Logs and much more...

From now on, no need to keep messing around the Operating System to have a full development stack ready to build our awesome Php Apps.

它可以通过 composer 包含在每个 php 项目中:

https://packagist.org/packages/exadra37-docker/php-docker-stack

或者,如果您愿意,可以直接从 here.

克隆它

它为每个服务提供了一些默认图像,但都可以通过 .env 配置,因此我们可以为 docker 中的任何支持的服务传递我们想要的任何 docker 图像] 撰写文件。

Php Docker Stack Services:

  • Http - Nginx, Apache, etc.
  • Php - Php-Fpm.
  • Database - Perconna, MariaDB, Mysql, etc.
  • Cache - Redis, MemCached, etc.
  • Logs - Logstash -> ElasticSearch <- Kibana.
  • Queue - Beenstalkd, RabbitMQ, ActiveMQ, Apache Kafka, etc.
  • Cron Jobs - Just to schedule cron jobs.
  • Dev CLI - Access to the container shell.
  • Database CLI - Like the awesome mycli propmt for mysql.
  • Cache CLI - Like the redis cli.

我在以前的开发工作中每天都在使用它。

我是它的作者,我有一些本地增强需要完善并合并到上游。

欢迎尝试,如有任何疑问或反馈,请联系我。

好吧,经过很多时间,我想我应该分享我找到的和我目前正在使用的解决方案:devilbox。它太棒了,一旦您了解它,就会发现它非常强大、灵活且可定制。