You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将ASP.NET Core 2.0部署至Heroku时推送Docker镜像遇阻求助

解决Docker推送至Heroku时卡在Preparing状态的问题

看起来你在推送ASP.NET Core 2.0镜像到Heroku时遇到了推送停滞在Preparing的情况,我来帮你梳理几个常见的排查和解决方向:

1. 确认Heroku认证状态

首先要确保Docker已经正确登录到Heroku的容器注册表。你可以重新执行登录命令,验证认证是否有效:

heroku container:login

执行这个命令后,会自动完成Docker与Heroku注册表的认证绑定,如果之前的认证过期或者失效,这一步能解决很多推送权限问题。

2. 检查网络连接稳定性

推送停滞在Preparing很多时候是网络波动导致的:

  • 尝试切换到更稳定的网络环境,比如用有线网络代替无线
  • 如果所在环境有网络限制,可尝试调整网络配置(注意符合当地网络规范)
  • 先拉取一个小镜像测试网络是否正常,比如执行docker pull hello-world,看是否能顺利完成

3. 验证Docker镜像构建是否正确

确保你的ASP.NET Core 2.0镜像本身没有问题:

  • 先在本地运行镜像测试是否能正常启动:docker run -p 5000:80 registry.heroku.com/contentfulmvc/web,如果能正常访问应用,说明镜像本身没问题
  • 检查Dockerfile是否符合Heroku的ASP.NET Core部署要求,比如是否正确设置了端口——Heroku会动态分配端口,你的Dockerfile里应该包含类似ENV ASPNETCORE_URLS=http://*:$PORT的配置,让应用能监听正确的端口

4. 重启Docker服务

有时候Docker后台服务的小故障会导致推送异常:

  • 停止Docker服务,等待几秒后重新启动,再尝试推送命令
  • 如果是Windows/macOS的Docker Desktop,可以直接在托盘图标里选择"Restart"选项

5. 尝试推送单个层(如果必要)

如果某个特定层一直卡住,可以先尝试推送单个层,再推送整个镜像:

docker push registry.heroku.com/contentfulmvc/web:2c234e510117

把上面的2c234e510117替换成你卡住的层ID,完成单个层推送后再执行完整的镜像推送命令。

如果尝试完这些步骤还是有问题,可以把推送时的完整错误日志(如果有的话)贴出来,我再帮你进一步排查。

内容的提问来源于stack exchange,提问作者Cody Moser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:28:49