Изначально я использовал 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}"
}
}
}
Я также хотел бы сказать, что я искал решение этой проблемы в течение нескольких часов и не смог найти никакой информациипо теме.