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

Postgres Docker容器启动失败:psql连接.s.PGSQL.5432 socket失败

核心故障原因

官方PostgreSQL镜像的默认ENTRYPOINT会自动完成数据库初始化、启动PostgreSQL服务、执行docker-entrypoint-initdb.d目录下脚本的全流程。你直接覆盖了默认ENTRYPOINT为自定义的1-restore.sh,脚本运行时PostgreSQL服务尚未启动,因此psql无法找到连接套接字触发报错。

可行解决方案
  • 移除自定义ENTRYPOINT配置,将初始化脚本直接放入docker-entrypoint-initdb.d目录,官方镜像会在PostgreSQL服务完全启动后自动执行该目录下的可执行.sh脚本
  • 初始化脚本开头可增加3-5秒的等待,确保服务完全就绪后再执行psql命令,避免偶发的连接失败
  • 修正脚本中语法错误:末尾输出行echo ""TestMessage">>test.txt存在引号不匹配问题,改为echo "TestMessage">>test.txt即可
修正后的配置示例

Dockerfile

FROM postgres:latest

## 安装依赖工具
RUN apt-get update -y && \
    apt-get install -y build-essential libfuse-dev libcurl4-openssl-dev libxml2-dev pkg-config libssl-dev mime-support automake libtool wget tar git unzip lsb-release zip vim

## 安装S3 Fuse
RUN rm -rf /usr/src/s3fs-fuse && \
    git clone https://github.com/s3fs-fuse/s3fs-fuse/ /usr/src/s3fs-fuse && \
    cd /usr/src/s3fs-fuse && \
    ./autogen.sh && ./configure && make && make install

## 创建数据目录
RUN mkdir -p /data/out

## 将初始化脚本放入官方指定的自动执行目录
ADD docker-entrypoint-initdb.d/1-restore.sh /docker-entrypoint-initdb.d/1-restore.sh
RUN chmod 755 /docker-entrypoint-initdb.d/1-restore.sh

1-restore.sh 脚本

#!/bin/bash
set -e

# 等待PostgreSQL服务完全启动
sleep 3

# 执行dump导入
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < "$DUMP_FILE"

# 导出表为JSON
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
  SET client_encoding TO 'UTF8';
  \t
  \a
  \o $OUT_FOLDER/export_json.sql;
  SELECT '\o $OUT_FOLDER/' || table_name || '.json;' || E'\n' || 'SELECT row_to_json(r) FROM "' || table_name || '" AS r;'
  FROM information_schema.tables
  WHERE table_schema = 'public'
  ORDER BY table_name;
  \i $OUT_FOLDER/export_json.sql;
EOSQL

rm "$OUT_FOLDER/export_json.sql"
echo "TestMessage">>test.txt
额外排查点
  • 运行容器时需确保传入POSTGRES_USER、POSTGRES_PASSWORD、POSTGRES_DB、DUMP_FILE、OUT_FOLDER所需的所有环境变量
  • 若DUMP_FILE为本地文件,需要通过Docker挂载将文件映射到容器内对应路径

内容的提问来源于stack exchange,提问作者Rajesh Kumar Dash

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:54:07