基于Docker的多个项目开发环境

时间:2017-09-28 19:06:25

标签: windows docker docker-compose development-environment lamp

我想知道具有LAMP堆栈的基于Docker的开发环境的最佳架构。

要求

  • 并行处理多个项目
  • 大多数项目使用相同的LAMP堆栈(为简单起见,我们假设所有项目共享相同的堆栈和配置)
  • 主机正在运行Windows + VBox + Docker Toolbox(即Boot2Docker)

当前架构

  • 一个共享开发环境,运行多个容器(web,db,持久数据..),每个站点配置vhosts
  • 使用scripts / Jenkins容器设置新项目(新数据库,vhost配置..)
  • 运行自定义Samba容器以与Windows计算机共享数据(IDE在Windows上运行)

一如既往有专业人士。虽然这很容易维护,但我们无法真正部署具有专用docker-compose.yml文件的特定项目,而且我们也无法获得“微服务”的所有好处,例如替换PHP /特定站点的MySQL版本。

问题是我们如何使用每个项目的docker-compose.yml文件,但仍然有多个项目同时运行(因为所有项目都使用端口80)。 是否更好(甚至可能?)每个项目使用随机端口并在这些Web容器之上运行代理层?

此用例的任何其他选项或常见设计模式?

感谢。

1 个答案:

答案 0 :(得分:1)

简短的回答是肯定的。如果没有指定端口,Docker默认会分配随机端口。对于映射,我会使用:https://github.com/jwilder/nginx-proxy

你可以拥有类似project1.yml project2.yml ....的东西,并启动容器将是这样的:

docker-comppse -f project1.yml up

但是,我不确定你为什么要这样做。你可以使用像Rancher这样的东西,将我的开发主机拆分成多个小型开发环境。