所以這裏有幾件事,你需要偏離那篇文章。由於該文章使用匿名音量爲node_modules
。在你的情況下,你還希望devDepencies也來到你的主機,這樣你就可以使用它們。
現在,節點將不允許兩個不同的文件夾進行依賴關係,直到您使用requirejs
模塊並在其中配置多個源。因此,對於您的開發圖像,您想要的是yarn
不在Dockerfile
內部運行。相反,當容器開始
所以我將改變Dockerfile作爲
FROM node:7.10.1
ENV HOME=/home/app
COPY package.json $HOME/react/
COPY scripts $HOME/react/scripts/
RUN npm install yarn -g
WORKDIR $HOME/react
ENV NODE_PATH=/home/node_modules
VOLUME $NODE_PATH
CMD yarn start:dev
然後,如果你做的docker-compose up
是node_modules
空更新docker-compose.yml
react:
build: .
ports:
- 3100:3100
volumes:
- .:/home/app/react
- ./node_modules:/home/node_modules
現在運行。所以每當你要刷新包
docker-compose run react yarn
docker-compose up -d
使用NODE_PATH
我們改變的node_modules
的位置/home/node_modules
容器內,你應該做的事情。然後在docker-compose
我們將其映射到主機上的./node_modules
。所以我們的第一個docker-compose run react yarn
,將填充這個文件夾與所有的依賴關係。
從您下次再運行docker-compose up
。任何時候你想更新依賴關係,你要麼在react
容器中運行「yarn」,要麼你只需再次運行docker-compose run ...
命令
這太棒了! –