Jac*_*Goh 5 node.js docker docker-compose
我正在使用 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
Run Code Online (Sandbox Code Playgroud)
我正在尝试开发一个名为 的自定义 Node 模块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",
Run Code Online (Sandbox Code Playgroud)
我的问题是,
当我使用 docker 容器中运行更新我的节点模块时npm install,它会my-shared-module从我的私有 Git 存储库下载到/code/node_modules/my-shared-module,并覆盖主机中的文件../my-shared-module,因为它们是同步的。
所以我的问题是,Docker 中是否可以进行单向卷同步?
小智 6
不幸的是,我认为这在 Docker 中是不可能的。挂载主机卷始终是双向的,除非您认为只读挂载是单向的,但这会阻止您使用npm install.
这里最好的选择是每次使用新文件重建映像,或者将CMD已安装的文件复制到已安装卷之外的新文件夹中。这样,任何文件更改都不会保留回主机。
| 归档时间: |
|
| 查看次数: |
6128 次 |
| 最近记录: |