Mr *_*r A 6 node.js docker eslint docker-compose visual-studio-code
我有一个在docker上运行的React NodeJS项目.我可以通过这里的文章来使它工作.
问题是,我node_modules在我的主机上是空的.更改volumesto /www/project/node_modules:app/node_modules将使Docker容器中的模块不可用.
我的工作只是通过运行只在我的主机上安装依赖项,npm install --only=dev但每次重新启动容器时它都会消失.
这是我的Github回购的副本.
所以这里的东西很少,你需要偏离那篇文章.因为该文章使用匿名卷node_modules.在您的情况下,您也希望devDepencies也可以来到您的主机,因此您可以使用它们.
现在,Node将不允许两个不同的文件夹用于依赖项,直到您使用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
Run Code Online (Sandbox Code Playgroud)
然后更新 docker-compose.yml
react:
build: .
ports:
- 3100:3100
volumes:
- .:/home/app/react
- ./node_modules:/home/node_modules
Run Code Online (Sandbox Code Playgroud)
现在,如果你做docker-compose up的node_modules是空的.那么每当你想要刷新包时你应该做什么
docker-compose run react yarn
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
使用NODE_PATH我们改变的位置node_modules,以/home/node_modules在容器内.然后docker-compose我们将相同的映射到./node_modules主机上.所以我们的第一个docker-compose run react yarn,将填充此文件夹中的所有依赖项.
从下次你刚开始docker-compose up.每当您想要更新依赖关系时,您可以在react容器内运行"yarn",也可以docker-compose run ...再次运行该命令
| 归档时间: |
|
| 查看次数: |
785 次 |
| 最近记录: |