Я недавно получил это, чтобы работать для моего проекта. Я извлек большую часть из созданных файлов Visual Studio Docker Compose.
Есть несколько различий, которые я вижу в вашем синтаксисе составления, которые могут способствовать вашей проблеме.
Во-первых, ваши переменные среды - я не уверен, какую версию compose вы используете. Я использовал 3.7 и смог определить переменные следующим образом:
ASPNETCORE_ENVIRONMENT: "Development"
ASPNETCORE_URLS: "https://+:443;http://+:80"
ASPNETCORE_HTTPS_PORT: "44371"
Обратите внимание, что основное отличие состоит в том, что я объявляю свои URL-адреса aspnetcore, используя подстановочный знак для домена, и объявляю номер порта непосредственно после этого https://+:443;http://+:80
в качестве номеров внутреннего порта
Мне удалось получить доступ к приложению именно так, как я ожидал, к https://localhost:44371.
Я по-прежнему определяю порты и в моем файле компоновки, но я думаю, что главное здесь - вам нужно сообщить ядру aspnet, какие порты находятся через переменную среды ASPNETCORE_URLS. Порты, объявленные в вашем файле compose, информируют ваш докер-контейнер, а не ваше приложение.
Таким образом, составной файл, который может работать для вас, будет следующим:
apigateway.website.public:
environment:
ASPNETCORE_ENVIRONMENT: "Development"
ASPNETCORE_URLS: "https://+:443;http://+:80"
ASPNETCORE_HTTPS_PORT: "5001"
volumes:
- ${APPDATA}/Microsoft/UserSecrets/:/root/.microsoft/usersecrets:ro
- ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
ports:
- "5000:80"
- "5001:443"
Я также добавил индикатор: ro (только для чтения) в ваши тома, так как это, похоже, лучший метод.