2017-03-08 45 views
-1

我使用docker作爲學習目的的新項目。我認爲這會讓事情變得更容易,因爲我只需要設置一次環境。Docker容器的持續開發

我已經創建了這樣的設置;我創建了一個安裝Ubuntu和NodeJS的基礎鏡像。我還創建了一個將src(Web應用程序)文件夾複製到容器中的開發圖像,然後執行npm install並運行server.js。這基本上是簡而言之。

但是現在,無論何時我對源代碼進行更改,我都必須停止正在運行的容器,然後構建映像並再次運行它。重建和運行de開發鏡像並不需要很長時間,但是在開發過程中,我做了一些改變,使得eveythime改變了我的代碼。

我通常使用的是一個Gulp任務或Browsersync來觀看我的本地文件。每次我進行更改時,這些更改都會在瀏覽器中自動顯示。這確實加快了開發過程。

通過在本地安裝所有東西,我仍然可以在開發過程中像這樣工作。但是這種做法挫敗了擁有「發展形象」的目的。這意味着我仍然需要配置所有希望在此Web應用程序上使用適當的Node版本,數據庫模式,端口映射,SSL設置,認證等的系統。

所以我的問題是,有沒有辦法運行容器,並且每當我更改源代碼(本地)時,它都會自動推送到正在運行的容器中?所以我有「持續發展」?

回答

1

如果我正確理解了你,你不希望每次更新src時都生成開發圖像。如果是這樣的情況,你可以做的是:

用於開發階段(當源代碼是更新頻繁):

  1. 以這樣的方式創建一個Dockerfile是利用一個共享卷(源代碼將駐留在那裏)。
  2. 在共享卷中,您可以使用src容器更新源代碼。
  3. 另外,如果您需要執行一些其他任務,則可以將其寫入腳本,並在每次更新源時調用該腳本。

稍後,當開發階段結束時,您可以使用您當前的Dockerfile來構建開發圖像。

+0

這就是我的意思。聽起來像是我的問題的一個很好的解決方案。今天晚些時候我會再試一次。謝謝。 – w00