在微服务架构中使用共享数据库docker容器

时间:2018-01-16 08:34:35

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

docker标记的问题数量开始,我假设StackOverflow是正确的地方(而不是DevOps),如果没有,请指出我正确的地方或相应地移动这个问题

我的方案如下:

  • 正在根据SOA /微服务方法开发包含前端(Web GUI)和后端(REST服务)的多个应用程序,每个应用程序都有自己的git存储库
  • 某些应用程序需要共享的附加资源,如前端需要HTTP服务器,而多个后端应用程序需要数据库服务器(具有持久存储)
  • 主要关注离线移动开发(在路上),因此应该可以快速设置所需的服务/应用程序,并且资源开销应该是最小的。但当然整个事情将在某个时候部署/发布,所以如果两者都可以管理,我不想阻挠
  • 在Windows和Linux主机上进行开发
  • 出于开发目的,需要从主机访问所有服务

我想要实现的是在应用程序存储库中有一个docker-compose.yaml文件,我通过docker-compose up调用该文件,然后启动所有必需的容器if not running already,例如当我在后端应用程序库中调用docker-compose up时启动数据库容器。

我的方法是建立一个新的git存储库,它定义了所有共享的docker镜像/容器,它有自己的docker-compose.yaml,每当有些东西发生变化时,所有开发人员都必须运行docker-compose build将来git commit hook)。中央docker-compose.yaml看起来像这样

version: "3"
services:

  postgres:
    build: ./images/postgres
    image: MY-postgres
    container_name: MY-postgres-server
    ports:
      - "5432:5432"

  httpd:
    build: ./images/httpd
    image: MY-httpd
    container_name: MY-httpd-server
    ports:
      - "80:80"

描述每个图像如何构建的Dockerfile在其自己的子文件夹中,我认为与该问题无关,基本上是alpine + apache / postgres的默认图像。

问题是:应用程序git存储库中的docker-compose.yaml如何引用上述中心docker-compose.yaml定义的服务/容器。

现在,自is no new problem scenario以来,我做了一些研究,老实说,各种方法和提议的解决方案令人困惑,一次various versions和兼容性,已弃用的功能等

哇,快速升级了。但我想展示我所做的研究,因为我不能相信它目前不可能。

0 个答案:

没有答案
相关问题