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

Docker构建postgres服务报错failed to parse stage name "postgres:"如何解决

问题根因

报错信息中提示的failed to parse stage name "postgres:": invalid reference format,本质是Dockerfile中FROM指令使用的${POSTGRES_VERSION}变量未被正确赋值,拼接后的镜像标签仅为postgres:,不符合Docker镜像引用的格式规范,因此构建失败。

解决方案

你可以根据自己的使用场景选择以下任意一种方案修复:

  • 构建时手动传入版本参数
    执行docker build命令时通过--build-arg传入POSTGRES_VERSION的有效值,示例命令如下,可自行替换需要的postgres版本号:
    docker build --build-arg POSTGRES_VERSION=15-alpine -t custom-postgres .
    
  • 在Dockerfile中配置默认版本
    在FROM指令前新增ARG定义并设置默认值,后续构建时如果没有传参就会自动使用默认版本,修改后的Dockerfile开头如下:
    ARG POSTGRES_VERSION=15-alpine
    FROM postgres:${POSTGRES_VERSION}
    # 原有后续内容保持不变
    
  • docker-compose构建场景配置
    如果使用docker-compose管理服务,在postgres服务的build配置块中增加args参数即可:
    services:
      postgres:
        build:
          context: ./
          args:
            POSTGRES_VERSION: 15-alpine
        # 其余服务配置保持不变
    
验证方式

构建完成后执行以下命令,可确认镜像的postgres版本是否符合预期:

docker run --rm custom-postgres postgres --version

内容的提问来源于stack exchange,提问作者Marko Vasic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:57:03