2016-05-11 57 views
-1

我爲一個nodejs應用程序使用docker,並且我已經能夠從現有的nodesource圖像構建圖像,我已經安裝了npm,並且所有的源代碼都被複制到/ usr/src/app中(我可以'看不到,我猜是因爲它在圖像/容器中)。但是,我啓動映像的容器,將其映射到端口併成功運行,但我怎麼才能通過編輯器連接並更改文件?本網站正在開發中,我想對其進行更改。我一直在尋找,但徹底困惑。如何連續更改代碼?

下面是我從

https://hub.docker.com/r/nodesource/trusty/

還內置了節點映像,我的容器信息

d9fe10b0f645 rokes/0.4 「NPM啓動」 10小時前最多10小時0.0.0.0: 49160-> 8080/tcp evil_hamilton

我需要以某種方式使用卷嗎?

這裏是我的dockerfile

FROM nodesource/trusty:latest 

ADD package.json package.json 

RUN npm install 

ADD . . 

CMD ["npm", "start"] 
+0

每次進行修改時都需要重新安裝package.json?你不能直接通過解釋包的代碼來工作嗎? – vmonteco

回答

0

只需加載包含你的代碼作爲VOLUME的目錄。

只需添加在您的Dockerfile:運行您的容器時

VOLUME /path/to/code 

,然後,使用-v選項:

docker run -d -v /dir/containing/your/code:/path/to/code your_image 

現在,您可以即時編輯代碼,並直接看到的變化而無需重建並重新啓動圖像/容器。

+0

好吧,這就是我的dockerfile原來的樣子。我應該在這裏取出加入嗎? FROM nodesource /信賴:最新 ADD的package.json的package.json RUN NPM安裝 ADD。 。 CMD [「npm」,「start」] – arsenalist

+0

您應該用一個音量替換您的「ADD」結構,因爲「ADD」表示將文件從我的主機複製到容器中,其中「VOLUME」表示鏈接文件夾/文件主機與容器之間。 –

+0

@arsenalist我沒有看到你鏈接的圖像的Dockerfile,所以我不知道。如果您使用'VOLUME'創建了一個用於裝載包含代碼的目錄的裝入點,如果您創建了「ADD」語句,則可以在映像中複製源代碼。請在您的問題中添加代碼。 – vmonteco