在使用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_modules
, public_lib
, public_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/