我正在尝试使用 Docker 容器设置 ASP.NET Core 8.0 Web API 以在 Heroku 上工作。
在 Heroku 和 Docker 上似乎都不起作用,我不明白为什么。
当我在 Docker 外部和我的机器本地运行它时,它在
localhost:5000
上运行。有人可以帮助我吗?
这是我的 Dockerfile:
控制台:
如您所见,CMD 正确识别了
$PORT
环境变量,但它无法在该端口上实际运行...
有人知道发生了什么事吗?
请勿发布文字图片。将文本粘贴到帖子中,然后使用格式设置工具将文件内容与文本分开。我很想向您展示一个有效的 Dockerfile,但我不会手动输入所有文本。
您的问题是,当容器启动时,ENTRYPOINT 和 CMD 被合并为一个命令。因此,最终发生的情况是,您的程序在没有 ENTRYPOINT 中指定的 shell 的情况下运行。然后您的 CMD 将作为参数传递给您的程序。您的程序可能不需要参数,因此它只是忽略它们。
要修复它,请删除 ENTRYPOINT 语句。然后你的 CMD 将按照你的预期在 shell 中运行,并且环境变量将被设置。