2015-12-12 37 views
1

每當我在nodejs應用程序中更改文件時,我必須重新構建泊塢窗圖像。
這種感覺多餘,會降低我的工作流程。有沒有適當的方法來同步nodejs應用程序文件,而無需重新構建整個圖像,或者這是一個正常的用法?我應該如何實現更好的Docker工作流程?

+0

問題是「這是正常用法嗎?」或者你在尋求優化Dockerfile構建的幫助?對'Dockerfile'中的命令使用的文件的更改將使後續步驟失效,因此需要重建它們。在這種情況下,是的,這是正常的行爲。但是,如果您可以發佈一些工作流程,Dockerfile以及可能需要優化的步驟,那麼構建答案會更容易一些。 –

+0

那麼我認爲更多關於優化方向。我會很快發佈我的當前解決方案。 – funerr

回答

0

我最終什麼事做的是:

1)使用量docker run命令 - 這樣我就可以改變代碼,而無需每次都重建泊塢窗圖像。

2)我有一個node_modules被覆蓋的問題,因爲一個卷的行爲就像是一個掛載 - 通過節點的PATH遍歷來修復它。

Dockerfile:

FROM node:5.2 

# Create our app directories 
RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

RUN npm install -g nodemon 

# This will cache npm install 
# And presist the node_modules 
# Even after we are using the volume (overwrites) 
COPY package.json /usr/src/ 
RUN cd /usr/src && npm install 

#Expose node's port 
EXPOSE 3000 

# Run the app 
CMD nodemon server.js 

命令行:

建:

docker build -t web-image 

運行:

docker run --rm -v $(pwd):/usr/src/app -p 3000:3000 --name web web-image