【发布时间】:2017-06-05 01:55:04
【问题描述】:
在我的一个比平常更大的项目中工作,我正在构建一个 Web 应用程序,它将与我的几个 API 对话,每个 API 都用自己的语言编写。我使用了两个数据库,一个是 MariaDB,一个是 Dgraph(图形数据库)。
这是我的本地导演架构:
-
服务 - 我的所有服务
-
api - 包含我所有的 API
-
auth - 包含我的用户身份验证/注册 API
- v1 - 包含我当前(唯一)的 API 版本
- trial - 包含我的一个名为 trial 的 API
- 等等……
-
auth - 包含我的用户身份验证/注册 API
- 应用程序 - 包含用户将与之交互的应用程序
- daemon - 包含我将作为守护进程运行的程序
- 工具 - 包含工具(导入数据、抓取工具等)
-
api - 包含我所有的 API
- 数据库 - 包含我的两个配置(MariaDB 和 Dgraph)
因为有些组件是用 PHP7-NGINX 编写的,而另一些组件是用 PYTHON-FLASK-NGINX 编写的,我怎样才能在考虑到这一点的情况下进行正确的 Docker 设置?每个服务、api、守护进程和工具都是独立的,它们都通过自己的 REST 端点进行通信。
每个都有自己的私有 github 存储库,我希望能够获取每个并在需要时将其部署到自己的服务器上。
我是 Docker 新手,我所做的所有阅读都让我感到困惑:我应该为每个服务创建一个 docker-compose.yml 还是为整个项目创建一个?但是每个服务都是单独部署的,那么 docker-compose.yml 是怎么知道的呢?
任何指向干净解决方案的指针?我应该为每个服务创建一个容器,并在该容器中放置 NGINX、PHP 或 PYTHON 等吗?
【问题讨论】:
标签: docker docker-compose dockerfile microservices docker-machine