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

在Visual Studio中运行Docker Compose触发Postgres未初始化错误

问题解决:Postgres Docker容器因环境变量格式错误启动失败

问题根源

你提供的docker-compose.yml中,环境变量的写法存在格式错误:等号两边的空格会导致Docker无法正确识别Postgres所需的环境变量。

比如你原来的配置:

- POSTGRES_PASSWORD = postgres 

这种写法会让Docker将变量名识别为POSTGRES_PASSWORD (末尾带空格),值为 postgres(开头带空格),而Postgres需要的是精确的POSTGRES_PASSWORD变量名,因此会判定你未设置超级用户密码,抛出启动错误。

从生成的docker run命令也能验证这一点:--env=POSTGRES_USER = postgres里的空格被直接保留,导致变量名不符合Postgres的要求。

修复方案

修改docker-compose.yml中的环境变量配置,去掉等号两边的空格,正确写法如下:

services:
  bookify.api:
    image: ${DOCKER_REGISTRY-}bookifyapi
    build:
      context: .
      dockerfile: Bookify.Api/Dockerfile
    depends_on:
      - bookify-db
  
  bookify-db:
    image: 'postgres:latest'
    container_name: Bookify.Db
    environment:
      - POSTGRES_DB=bookify
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
    volumes:
      - ./.containers/database:/var/lib/postgresql/data
    ports:
      - 5432:5432

额外说明

  • 无需提前在pgAdmin创建数据库:Postgres镜像会自动使用POSTGRES_DB指定的名称创建数据库,同时用POSTGRES_USER和POSTGRES_PASSWORD配置超级用户。
  • 无需额外下载组件:只要Docker和Docker Compose正常运行,Postgres镜像会自动拉取并配置所需依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 02:23:15