2014-10-22 59 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