我正在将 Docker Compose 用于我的本地开发环境,用于全栈 Javascript 项目。
我的 Docker Compose 文件的一部分看起来像这样
version: "3.5"
services:
frontend:
build:
context: ./frontend/
dockerfile: dev.Dockerfile
env_file:
- .env
ports:
- "${FRONTEND_PORT_NUMBER}:${FRONTEND_PORT_NUMBER}"
container_name: frontend
volumes:
- ./frontend:/code
- frontend_deps:/code/node_modules
- ../my-shared-module:/code/node_modules/my-shared-module
我正在尝试开发一个名为的自定义节点模块my-shared-module,这就是我添加- ../my-shared-module:/code/node_modules/my-shared-module到 Docker Compose 文件的原因。节点模块托管在私有 Git 存储库中,并在package.json
"dependencies": {
"my-shared-module": "http://gitlab+deploy-token....@gitlab.com/.....git",
我的问题是,
当我使用 更新 docker 容器中的节点模块时npm install,它会my-shared-module从我的私人 Git 存储库中下载到/code/node_modules/my-shared-module中,并且会覆盖 host 中的文件../my-shared-module,因为它们是同步的。
所以我的问题是,是否可以在 Docker 中进行 1 路卷同步?
- 当主机更改时,更新容器
- 当容器发生变化时,不要更新主机?