我有一个软件,我正在考虑开源。在此之前,我运行的大部分代码和它的依赖本机上,我正在使用(如Gunicorn,RabbitMQ,Redis等)。这是所有安装与简单的安装脚本。
我想使用Docker来处理这个问题,这样我们就可以确保它在所有机器上都能运行。
在以前的项目中,我会有一个应用程序的Dockerfile,然后一个Docker Compose来编排任何其他依赖性服务,如RabbitMQ或Redis,但我正在努力思考从现在开始这样做的最佳方式。
是不是有一个基于Ubuntu的Dockerfile,将所有内容安装在一个容器中更好?也就是说,它将RabbitMQ和应用依赖项直接安装在同一个容器中。因此,当你想安装它时,你所需要做的就是docker run <image>
。
还是坚持使用Docker Compose方法来编排事情更好?
1条答案
按热度按时间31moq8wy1#
Docker compose是更好的方法。
Docker容器只能运行一个服务(Gunicor、RabbitMQ或Redis)。
通常建议您通过对每个容器使用一个服务来区分关注的区域。
这对于那些将使用你的服务(Gunicorn)并且已经拥有Redis或RabbitMQ示例的人也很有用,这将允许他们重用他们的资源,并且只运行他们需要的项目。