Используя параметр визуальной студии DockerfileRunArguments в файле launchsettings.json

Я создаю приложение-контейнер, а не использую контейнер 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",
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
0
73
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

--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 использует для запуска контейнера?

David 31.03.2023 03:00

Да, если вы перейдете на панель инструментов контейнера окна вывода, команда будет зарегистрирована там

Nathan Carlson - MSFT 31.03.2023 08:16

Другие вопросы по теме