代码之家  ›  专栏  ›  技术社区  ›  Aaron Stainback

visual studio中的asp.net核心自定义docker卷装入

  •  3
  • Aaron Stainback  · 技术社区  · 8 年前

    最初我用的是 Visual Studio 2017 Tools for Docker 因为这是早期版本的visual studio在向asp.net添加docker支持时的默认设置。

    最近我升级到了visual studio 2017 15.8.0预览版2,我注意到有一种全新的方法可以使用 launchSettings.json .

    旧的方式有一个特别的 *.dcproj whos项目的sdk属性指向 <Project Sdk="Microsoft.NET.Sdk.Web"> . 在这个项目中,有一个 docker-compose.yml 和A docker-compose.override.yml 指向我的asp.net的 Dockerfile . 这是非常灵活的允许我做大量的定制,如添加卷装载如下。

    docker-compose.override.yml:

    version: '3.5'
    services:
      sample.container:
        volumes:
        - type: bind
          source: C:\config
          target: /config
          read_only: true
          volume:
            nocopy: true
    

    这很好,因为它允许我轻松地指向调试期间不在容器中的配置文件。

    现在使用visual studio中的新docker工具 launchsettings.json启动设置 <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="0.2.1686908" /> *.csproj 文件组合文件不再使用,它将启动 停靠文件 直接的。下面是我的 launchsettings.json启动设置 .

    我真的希望有人能告诉我如何添加一个自定义卷挂载到 launchsettings.json启动设置 文件,请参阅 Docker 下面一节。

    launchSettings.json:

    {
      "iisSettings": {
        "windowsAuthentication": false,
        "anonymousAuthentication": true,
        "iisExpress": {
          "applicationUrl": "http://localhost:55836",
          "sslPort": 44354
        }
      },
      "profiles": {
        "IIS Express": {
          "commandName": "IISExpress",
          "launchBrowser": true,
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
          }
        },
        "WebApplication1": {
          "commandName": "Project",
          "launchBrowser": true,
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
          },
          "applicationUrl": "https://localhost:5001;http://localhost:5000"
        },
        "Docker": {
          "commandName": "Docker",
          "launchBrowser": true,
          "launchUrl": "{Scheme}://localhost:{ServicePort}"
        }
      }
    }
    

    我还想说,我已经找了几个小时这个问题的解决方案,但我还没有找到任何关于这个问题的信息。

    1 回复  |  直到 8 年前
        1
  •  8
  •   Phil Hoff -- MSFT    8 年前

    有两个msbuild属性可用于扩展docker映像的生成/运行:

    • DockerfileBuildArguments :传递给docker build命令的其他参数。
    • DockerfileRunArguments :传递给docker run命令的其他参数。

    例子:

    <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <DockerfileRunArguments>-v "C:\HostFolder:/ContainerFolder:ro"</DockerfileRunArguments> </PropertyGroup> </Project>

    推荐文章