刚从整个 Docker 事情开始,我就无法理解一件事:
如何处理不同的依赖关系?假设在生产中我不想安装 git、grunt 等,但在开发中我愿意。
可以运行测试的容器和在生产中运行的容器之间是有区别的。
我想错了吗?
刚从整个 Docker 事情开始,我就无法理解一件事:
如何处理不同的依赖关系?假设在生产中我不想安装 git、grunt 等,但在开发中我愿意。
可以运行测试的容器和在生产中运行的容器之间是有区别的。
我想错了吗?
对此有不同的理念,但就个人而言,我使用 Docker 来尽可能地匹配我的生产环境,因此在任何地方使用该容器进行测试让我非常确定一旦我部署到 prod 一切都会正常工作。这是 Docker 的主要优点之一——您可以在任何地方部署之前在本地模拟操作系统、环境、依赖项、版本等。
拥有一个带有附加依赖项的单独容器开发容器并没有错,您可以在团队中传递这些依赖项,但对我来说,Docker 用于开发的主要好处是能够在模拟的产品环境上进行测试并在本地运行与您完全相同的容器准备好后将在 prod 中使用。没有更多“但它在我的机器上工作!” 错误。
docker-rails是我刚刚创建的一个项目,用于使使用 docker(和 CI)的 Rails变得非常容易。我认为它可以帮助您并减少在 docker 上使用 rails 启动和运行所需的配置量。它处理多个环境,即development | test | production
在一个docker-rails.yml
文件中,这实际上只是标准 docker-compose.yml 的元配置/继承包装器。
它将允许您在测试、vs 开发服务器或具有不同容器的生产设置中运行测试命令集。自述文件中的示例显示elasticsearch
在开发和测试中使用,但不用于暂存或生产。
我希望这会有所帮助。