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

Docker Compose推送DigitalOcean镜像仓库报unexpected end of JSON input错误

问题根因定位

你的容器镜像命名不符合DigitalOcean容器镜像仓库(DOCR)的规范,是当前报错的直接原因:
DOCR要求的镜像命名格式为:
registry.digitalocean.com/<你的仓库名称>/<自定义镜像名>:<标签>
而你当前配置里所有DOCR镜像都写成了 registry.digitalocean.com/pythonist-do:web 这种格式,仓库名pythonist-do和镜像名web之间错误使用了冒号而非斜杠,导致推送请求被DOCR识别为非法请求,返回400错误。

修复步骤
  1. 修正docker-compose.staging.yml中的镜像地址
    把所有服务的image字段里仓库名后的冒号替换为斜杠,可自行指定镜像标签,未指定时默认使用latest:
# 原错误写法
image: registry.digitalocean.com/pythonist-do:web
image: registry.digitalocean.com/pythonist-do:nginx-proxy

# 修正后写法
image: registry.digitalocean.com/pythonist-do/web:latest
image: registry.digitalocean.com/pythonist-do/nginx-proxy:latest
  1. 同步doctl凭证到Docker本地
    即使doctl已经配置了权限,也需要执行命令完成Docker对DOCR的登录认证:
    doctl registry login
    执行后提示登录成功即可。

  2. 重新构建并推送镜像

docker-compose -f docker-compose.staging.yml build
docker-compose -f docker-compose.staging.yml push
可选排查点

如果修改后仍报错,可按以下顺序排查:

  • 确认你在DO后台创建的容器仓库名称确实为pythonist-do,大小写、拼写完全一致
  • 确认你的DO账户容器镜像仓库服务已正常激活,无欠费、权限受限等异常
  • 清理本地旧的错误命名的镜像后再重新构建推送,避免缓存影响

内容的提问来源于stack exchange,提问作者Abdul Rehman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:00:00