Я создаю приложение-контейнер, а не использую контейнер Docker.
ASPNETCORE_ENVIRONMENT="Подготовка"
Я подумал, что могу сослаться на этот файл среды докеров с --env-file dockerfile-staging.conf
"Docker": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger",
"DockerfileRunArguments": "--env-file dockerfile-staging.conf",
"publishAllPorts": true,
"useSSL": true
}
Переменная среды ASPNETCORE_ENVIRONMENT не задана и по умолчанию имеет значение Development.
ошибок не вижу.
Если я использую следующее, переменная среды aspnetcore правильно устанавливается как Staging.
Любая идея, почему может быть неправильно?
"DockerfileRunArguments": "-e ASPNETCORE_ENVIRONMENT=Staging",
--env-file dockerfile-staging.conf
не работает, потому что VS передает -e ASPNETCORE_ENVIRONMENT=Development
как часть docker run
, а докер отдает приоритет значению из командной строки, а не значению в файле env. Использование -e работает по той же причине.
В качестве альтернативы можно использовать:
"Docker": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger",
"publishAllPorts": true,
"useSSL": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Staging"
}
}
Значения в environmentVariables
установлены только для процесса, поэтому, даже если вы не видите значение в окне инструментов контейнера, вы увидите его в своем процессе.
Да, если вы перейдете на панель инструментов контейнера окна вывода, команда будет зарегистрирована там
Можно ли увидеть полную командную строку, которую vs.net использует для запуска контейнера?