我正在使用docker-sync加速我的node.js应用程序上的开发环境文件更新。
现在我正在尝试通过将npm install
移动到图像并在创建图像时运行package.json
来缓存npm install
命令。
Dockerfile:
ADD ./package.json /app/user/
RUN npm install
然后我使用以下配置进行docker-sync:
搬运工-sync.yml
version: "2"
options:
verbose: true
syncs:
appcode-rsync-sync:
src: './'
sync_host_ip: 'auto'
sync_host_port: 10872
sync_strategy: 'rsync'
sync_excludes: [ 'public/lib/', 'public/dist/', 'node_modules/']
这是 docker-compose.yml :
services:
web:
build: .
ports:
- "3000:3000"
volumes:
- appcode-rsync-sync:/app/user:nocopy
command: grunt
volumes:
appcode-rsync-sync:
external: true
问题是npm install
在node_modules
,public_lib
,public_dist
目录中安装了所有必需的软件包,但在安装docker-sync
卷后,它将删除容器中的所有目录(即使它们位于sync_excludes
。)
我有任何选择或解决方法阻止docker-sync删除容器上的文件?
- 我已尝试删除nocopy
,但没有帮助
答案 0 :(得分:0)
使用this answer我修改了docker-compose.yml
来解决问题。
<强>搬运工-compose.yml:强>
services:
web:
build: .
ports:
- "3000:3000"
volumes:
- /app/user/public/lib/
- /app/user/public/dist/
- /app/user/node_modules/
- appcode-rsync-sync:/app/user:nocopy
command: grunt
volumes:
appcode-rsync-sync:
external: true
如您所见,我添加了以下卷:
- /app/user/public/lib/
- /app/user/public/dist/
- /app/user/node_modules/