【问题标题】:How would the host share a workspace with docker container in the development workflow?在开发工作流程中,主机如何与 docker 容器共享工作空间?
【发布时间】:2015-06-17 15:00:46
【问题描述】:
我知道我可以将一个文件夹从主机安装到容器中。但是,如果我在 Mac 上开发,应用程序可能需要不同的依赖项才能在容器中运行。跨主机和容器共享此文件夹的推荐做法是什么。
例子:
我们有一个 nodejs 项目:
workspace
|\-node_modoule
|\-app
|\-config
....
主机正在运行 Mac OSX,容器正在运行 Ubuntu。当我尝试在 IDE 中调试项目时(例如 Intellij idea),我应该在 node_modoule 文件夹中拥有所有依赖项,这些依赖项可能是特定于操作系统的。然后当我用容器运行它时会失败,因为它可能需要不同的依赖关系。
【问题讨论】:
标签:
node.js
intellij-idea
docker
【解决方案1】:
尝试将node_modules/ 添加到.dockerignore 以防止将此目录吸入上下文,然后通过标准volume 命令共享每个目录。
例如。撰写文件:
web:
build: .
volumes:
# need to list all directories due to node_modules/ and bower_components/ :/
- "app:/src/app"
- "client:/src/client"
- "config:/src/config"
- "public:/src/public"
- "scripts:/src/scripts"
links:
- "redis:redis"
ports:
- "8888:8888"
command: node_modules/.bin/grunt
redis:
image: redis