我正在使用docker进行软件开发,因为我可以将所有依赖项(编译器,库,...)捆绑在一个包含良好的环境中,而不会污染主机。
我通常做事的方式(我猜这很常见):我在主机上有一个目录,它只包含源代码,使用docker卷挂载到开发容器中,我的软件在这里构建,执行。由于卷处于同步状态,因此源中的任何更改都会反映在容器中。
这是一个陷阱:当使用代码编辑器时,软件依赖性被认为是破坏的,因为它们无法从主机访问。因此,linting等......不起作用。
我希望能够将容器中的/usr/local/include
安装到主机上,以便正确配置我的编辑器,我可以修复所有警告。
我想这里的docker volume不是解决方案,因为它会覆盖包含的文件系统......
另外,我使用Windows(这里别无选择)因此我的流程是:
Windows > Samba > Linux Host > Docker > Container
我不想切换IDE(VS代码)。
有什么想法吗?谢谢!
答案 0 :(得分:3)
您基本上希望可以将卷从容器反向安装到主机。遗憾的是,Docker无法做到这一点,这里有一些问题的变体:How to mount a directory in docker container to host
您无法将文件从容器复制到主机。至于匹配/usr/local/include
或必须使用其他文件夹的主机路径取决于您的设置。
不需要更改docker镜像的最简单的解决方案是使用docker cp
复制文件。
否则,您可以通过在输入时(在安装所有依赖项之后)将文件复制到/tmp/include
并将主机卷装载到该位置来自动执行此操作。