在使用docker-sync时合并容器文件

我正在使用docker-sync加速我的node.js应用程序上的开发环境文件更新。

现在我试图通过将package.json移动到映像并在创build映像时运行npm install来cachingnpm install命令。

Dockerfile:

 ADD ./package.json /app/user/ RUN npm install 

然后,我使用以下configuration进行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_modulespublic_libpublic_dist目录中,但是在安装public_lib docker-sync卷后,它将从容器中删除所有这些目录(即使它们在sync_excludes

我有任何select或解决,以防止docker同步删除容器上的文件?

– 我已经尝试删除nocopy但没有帮助

使用这个答案,我修改了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/