ASP.NET Core 8.0 Docker 容器未将环境端口变量分配给 ASPNETCORE_URLS

问题描述 投票:0回答:1

我正在尝试使用 Docker 容器设置 ASP.NET Core 8.0 Web API 以在 Heroku 上工作。

在 Heroku 和 Docker 上似乎都不起作用,我不明白为什么。

当我在 Docker 外部和我的机器本地运行它时,它在

localhost:5000
上运行。有人可以帮助我吗?

这是我的 Dockerfile:

This is my Dockerfile

控制台:

The console

如您所见,CMD 正确识别了

$PORT
环境变量,但它无法在该端口上实际运行...

The port it listens to

The error

The dyno

有人知道发生了什么事吗?

docker heroku environment-variables asp.net-core-8
1个回答
0
投票

请勿发布文字图片。将文本粘贴到帖子中,然后使用格式设置工具将文件内容与文本分开。我很想向您展示一个有效的 Dockerfile,但我不会手动输入所有文本。

您的问题是,当容器启动时,ENTRYPOINT 和 CMD 被合并为一个命令。因此,最终发生的情况是,您的程序在没有 ENTRYPOINT 中指定的 shell 的情况下运行。然后您的 CMD 将作为参数传递给您的程序。您的程序可能不需要参数,因此它只是忽略它们。

要修复它,请删除 ENTRYPOINT 语句。然后你的 CMD 将按照你的预期在 shell 中运行,并且环境变量将被设置。

© www.soinside.com 2019 - 2024. All rights reserved.