我正在使用 docker-sync 来加速我的 Node.js 应用程序上的开发环境文件更新。
现在,我正在尝试通过将 package.json
移动到镜像并在镜像启动时运行 npm install
来缓存 npm install
命令创建。
Dockerfile:
ADD ./package.json /app/user/
RUN npm install
然后我对 docker-sync 使用以下配置:
docker-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
但没有帮助
最佳答案
使用this answer我修改了 docker-compose.yml 来解决该问题。
docker-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/
关于node.js - 使用 docker-sync 时合并容器文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44811901/