2017-09-02 94 views
1

我有一個GitLab存儲庫,其中我有一個node.js應用程序與快速,我想「部署」此代碼到我的Ubuntu服務器遠程使用快速服務器,不僅本地,但我不不想安裝node.js,而是想嘗試使用Docker。 我已經閱讀了很多關於Docker的內容,並且我已經理解了基本的東西。我的問題是,如果我在Ubuntu服務器上安裝Docker,當我推入我的存儲庫時,如何在Docker上「部署」我的代碼?推送代碼到遠程Docker

+0

軟件建議中有類似的問題 - > https://softwarerecs.stackexchange.com/questions/44768/heroku-like-deployment-git-push-and-application-management-platform –

回答

2

基本上,你必須分兩步進行分析。一種是dockerizing您的應用程序,這意味着爲您的存儲庫創建一個Docker鏡像。第二步是讓您的服務器使用此映像,可能會自動執行推送過程。所以我會這樣做:

  1. DockerizeDockerize您的應用程序。這意味着你有一個Dockerfile你創建一個包含你的應用程序的圖像,運行它,並可能導出一個端口使用它的外部。
  2. 在您的服務器上運行映像。您的服務器需要安裝docker,並且能夠獲得正確的映像(稍後會詳細介紹)。如果只使用一個圖像,則可以使用簡單的docker run命令。如果涉及更多的部件,例如數據庫或網絡服務器,我會推薦使用docker-compose
  3. 使圖像在您的服務器上可用。這裏有多個選項。您可以將您的圖像publish轉換爲Docker存儲庫(私有或公共),或者您可以將存儲庫下載到服務器中,然後在那裏構建映像。
  4. 最後,您需要綁定這些步驟。爲此,您需要一個hook對提交作出反應的服務器,您可以在該服務器上向服務器發送命令以獲取/構建映像,並運行較新的版本。

實際上,您在如何操作時有很大的靈活性。我將從一個更簡單的過程開始,在這個過程中,您可以在服務器上構建映像,並根據您的需要在其上構建該映像。

+0

因此,Dockerize應用程序意味着創建DockerFile,然後是安裝了docker的服務器,使用hook必須每次推動,抽取代碼並一次又一次構建dockerFile,是嗎? – Piero

+1

是的,通過dockerize我的意思是添加一個'Dockerfile'並讓你的應用可以作爲一個docker鏡像運行。然後鉤子讓你獲得最新版本,你可以在服務器內運行圖像。我認爲設置是最容易的。 –

0

Dokku是一個基於Docker的PaaS平臺,提供git push部署。它支持Heroku構建包建立一個運行你的應用程序或自定義Dockerfile deployments