【问题标题】:docker-compose.vs.release.yml Volume binding on VS 2017docker-compose.vs.release.yml VS 2017 上的卷绑定
【发布时间】:2017-08-11 05:33:01
【问题描述】:

这是一个 .net core web 应用项目的 docker 文件。 我试图理解这些行的含义。

  • ~/clrdbg:/clrdbg:ro 是什么意思。
  • 当我创建文件时,它们也存储在我的项目文件夹的根目录中。他们不应该存储在容器卷中。
  • 如何正确映射卷并删除这些卷的内容。

     version: '2'
    
    services:
    
     is.mvcclient:
    build:
      args:
        source: ${DOCKER_BUILD_SOURCE}
    volumes:
      - ~/clrdbg:/clrdbg:ro
    entrypoint: tail -f /dev/null
    labels:
      - "com.microsoft.visualstudio.targetope ratingsystem=linux"
    

【问题讨论】:

    标签: visual-studio docker docker-compose docker-for-windows


    【解决方案1】:
    • ~/clrdbg:/clrdbg:ro 基本上意味着本地文件夹 ~/clrdbg 将在 /clrdbg 下的容器中可用,并且本地更改也将反映在容器中,而无需重建映像。 RO 表示它是只读的,因此容器无法更改该文件夹中的文件。
    • 您的卷已安装到主机文件夹(在这种情况下,我假设您的项目是根目录)。如上一点所述,在这种情况下,本地文件系统的更改会反映在容器中。
    • 首先,您必须将项目放入容器中,所以我想您可以在构建映像时将其复制/添加到容器中。之后,您必须执行以下操作:

      services:
          is.mvcclient:
              volumes:
              - data-volume:/clrdbg
      volumes:
        data-volume:
      

      通过这样做,对容器中文件的所有更改将仅反映在这些文件中,而不是本地文件中。当然,这是双向的——对本地文件的更改不会反映在容器文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-27
      • 2019-08-17
      • 2017-08-01
      • 2017-07-05
      • 2017-05-11
      • 2019-09-14
      • 1970-01-01
      相关资源
      最近更新 更多