尽pipe项目位于泊坞窗容器上,但在我的IDE上仍可使用Lintingfunction
我有一个在Docker上运行的React NodeJS项目。 我能够通过在这里发表文章来实现它的工作。
问题是,我的主机中的node_modules
是空的。 将volumes
更改为/www/project/node_modules:app/node_modules
将使模块在/www/project/node_modules:app/node_modules
容器中不可用。
我的工作就是通过运行npm install --only=dev
只安装在主机上的依赖关系,但是每次重启容器都会消失。
这是我的Github回购的副本,这是做到这一点。
所以这里没有什么东西,你需要偏离那篇文章。 因为这些文章使用匿名卷node_modules
。 在你的情况下,你想devDepencies也来到你的主机,所以你可以使用它们。
现在,Node将不允许两个不同的文件夹进行依赖关系,直到您使用requirejs
模块并在其中configuration多个源文件。 所以对于你的开发图像,你想要的是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.yml
react: build: . ports: - 3100:3100 volumes: - .:/home/app/react - ./node_modules:/home/node_modules
现在,如果您执行node_modules
docker-compose up
则node_modules
为空。 所以,当你想刷新软件包时你应该做什么
docker-compose run react yarn docker-compose up -d
使用NODE_PATH
我们将容器内的node_modules
的位置node_modules
为/home/node_modules
。 然后在./node_modules
docker-compose
我们将其映射到主机上的./node_modules
。 所以我们的第一个docker-compose run react yarn
,将填充这个文件夹与所有的依赖关系。
从下次你运行docker-compose up
。 任何时候你想更新依赖关系,你可以在react
容器里面运行“yarn”,或者你再次运行docker-compose run ...
命令