【问题标题】:Mounting development docker container directory on host在主机上挂载开发 docker 容器目录
【发布时间】:2017-08-21 01:26:31
【问题描述】:

我正在使用 docker 进行软件开发,因为我可以将我的所有依赖项(编译器、库等)捆绑在一个很好的包含环境中,而不会污染主机。

我通常做事的方式(我猜这很常见):我在主机上有一个只包含源代码的目录,该目录使用 docker 卷安装到开发容器中,我的软件在此构建和执行。由于卷是同步的,源中的任何更改都会反映在容器中。

这是一个陷阱:使用代码编辑器时,软件依赖项被认为是损坏的,因为它们无法从主机访问。因此,linting 等... 不起作用。

我希望能够将容器中的/usr/local/include 挂载到主机上,以便正确配置我的编辑器,我可以修复所有警告。

我猜 docker volume 不是这里的解决方案,因为它会覆盖包含的文件系统...

另外,我使用的是 Windows(这里没有选择),因此我的流程是:

Windows > Samba > Linux Host > Docker > Container

而且我不想切换 IDE(VS Code)。

有什么想法吗?谢谢!

【问题讨论】:

    标签: docker


    【解决方案1】:

    您基本上希望可以将卷从容器反向安装到主机。不幸的是,Docker 无法做到这一点,这里有这个问题的变体:How to mount a directory in docker container to host

    您无法将文件从容器复制到主机。至于主机路径匹配/usr/local/include 或必须使用不同的文件夹取决于您的设置。

    不需要更改 docker 映像的最简单解决方案是使用 docker cp 复制文件。

    否则,您可以通过让映像在入口处(安装所有依赖项后)将文件复制到/tmp/include 并将主机卷安装到该位置来自动执行此操作。

    【讨论】:

      【解决方案2】:

      我使用https://forums.docker.com/t/how-to-mount-docker-volume-along-with-subfolders-on-the-host/120482/13 将容器内部的python 库公开到本地文件夹,以便neovim 可以读取库以自动完成/跳转到定义。

      【讨论】:

        猜你喜欢
        • 2014-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-10
        • 1970-01-01
        • 2017-02-23
        • 2022-11-03
        • 2017-12-27
        相关资源
        最近更新 更多