主机如何在开发工作流程中与docker容器共享工作区?

时间:2015-06-17 01:36:35

标签: node.js intellij-idea docker

我知道我可以将主机上的文件夹挂载到容器中。但是,如果我在Mac上开发,应用程序可能需要在容器中运行不同的依赖性。建议在主机和容器之间共享此文件夹的做法。

示例:

我们有一个nodejs项目:

workspace
  |\-node_modoule
  |\-app
  |\-config
  ....

主机正在运行 Mac OSX ,容器正在运行 Ubuntu 。当我尝试在IDE中调试项目时(例如,Intellij的想法),我应该在node_modoule文件夹中拥有所有依赖项,这可能是特定于操作系统。然后当我用容器运行它会失败,因为它可能需要不同的依赖。

1 个答案:

答案 0 :(得分:0)

尝试将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