我正在尝试建立一个由几个与Docker协调的微服务组成的项目。下面是我的项目的简化模式:
- Main-project
- Dockerfile
- docker-compose.yml (bundles Microservice1 and Microservice2)
- Microservice1
- Dockerfile
- Microservice2
- Dockerfile现在,每个组件都有许多依赖项,例如由docker-come.yml文件管理的RabbitMQ。我设法通过使用撰写文件使整个项目在Docker上运行。
但是,我在单独运行各个组件时遇到了问题。问题是Microservice1依赖于rabbitMQ,但是它没有一个复合文件来管理这个依赖项,所有其他组件也是如此。因此,当我试图单独运行任何单独的组件时(对于单元测试,对于实例),我会遇到缺少依赖项的问题。
我应该添加每个组件的Dockerfile上的所有依赖项吗?每个组件应该有一个坞-组合文件吗?建立这样一个系统的最佳实践是什么?
非常感谢!
更新:
作为一个重要的注意事项,我忘记提到每个微服务都有自己的回购。
发布于 2017-12-15 09:26:50
的确,一个微服务必须是独立的,这意味着它可以在没有其他微服务的情况下进行部署和扩展。但是,服务开始运行通常需要dbms、message或缓存系统。这就是为什么大多数CI系统(如Gitlab CI或无人驾驶飞机或Jenkins )在执行单元测试之前都具有启动其他服务的功能。如果您没有使用任何CI,那么让每个组件编写文件是明智的。
https://stackoverflow.com/questions/45996858
复制相似问题