Крепление тома настраиваемой док-станции ядра ASP.Net в Visual Studio - PullRequest
0 голосов
/ 02 июня 2018

Изначально я использовал Visual Studio 2017 Tools для Docker , так как это было по умолчанию в более ранних версиях Visual Studio при добавлении поддержки докеров в ASP.NET.

Недавно я обновился до VisualStudio 2017 15.8.0 Preview 2, и я заметил, что существует совершенно новый способ сборки докеров с использованием launchSettings.json.

. В старом способе специальный атрибут SDK *.dcproj whos проекта указывал на <Project Sdk="Microsoft.NET.Sdk.Web">.Внутри этого проекта были docker-compose.yml и docker-compose.override.yml, которые указывали на Dockerfile моей ASP.Net.Это было очень гибко, что позволило мне сделать тонны настройки, например, добавить монтирование тома следующим образом.

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 используются новые инструменты докера с использованием launchSettings.json и <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="0.2.1686908" /> в файле *.csproj, файлы создания больше не используются, он запускаетDockerfile напрямую.Ниже приведена копия моего 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 Ответ

0 голосов
/ 05 июня 2018

Существует несколько свойств MSBuild, которые можно использовать для дополнения сборки / запуска образа Docker:

  • DockerfileBuildArguments: дополнительные аргументы, переданные команде сборки Docker.
  • DockerfileRunArguments: дополнительные аргументы, переданные команде запуска Docker.

Пример:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...