2014-10-22 58 views
0

我有一个node.js应用程序依赖于phantom.js。由于node和phantom.js都不太容易设置,所以我创建了一个Docker容器来完成这个任务。 现在,我该如何将我的应用程序的更新部署到在我们的生产服务器上运行的此Docker容器。如何使用Docker部署应用程序

对我来说,有两种可能性。

  1. 设置SSH,直接把我的git仓库到码头工人容器
  2. 添加量和更新资源库中的容器

我倾向于后者外面,但我不知道有一个更好的办法。

在此先感谢!

+0

或者,您可能会考虑将应用程序放在图像中,并在更新代码时重建新图像。 – 2014-10-22 12:22:07

回答

1

这两种方式都允许您在现有容器中更新您的应用程序。

然而,如果你删除你的容器会发生什么?

    你可以重新链接到包含您的应用程序
  • 在第一种方式,你就必须也连接到SSH和上传应用程序代码
相同体积的一个全新的容器中的第二种方式
  • 此外,Dockerfile在第一种情况下会更复杂,而且更难以维护。您还必须处理安全问题,并确保整个世界都无法连接到ssh服务器。


    总结一下,把它做成KISS并去卷的方式。只需要考虑添加一个ssh服务,如果你不仅仅需要推送文件而需要它。

  • +0

    感谢您的意见,我会以第二种方式做到这一点。 – user3797089 2014-10-22 12:27:19

    +0

    好的,但我需要用npm编译二进制文件,因为这应该在机器上完成,两者都没有意义。 我想到了一个私人码头注册表。但后来我没有机会自动构建它(也许詹金斯?) – user3797089 2014-10-23 14:44:30

    +0

    因为码头1.3您可以在运行的码头上执行命令(请参阅[docker exec](https://docs.docker.com/reference/commandline/) cli /#exec)命令);你可以利用这个优势在任何你认为合适的时候在运行的码头集装箱中重新编译你的二进制文件 – Thomasleveil 2014-10-23 14:49:10