Docker Hive容器启动报错:pg_isready: command not found 求助
解决Hive容器启动时
pg_isready: command not found报错 排查方向与解决方案
确认PostgreSQL客户端是否完整安装
检查Hive容器Dockerfile中安装PostgreSQL客户端的命令是否适配基础镜像的系统:- 若基础镜像是Debian/Ubuntu系列,确保使用命令:
RUN apt-get update && apt-get install -y --no-install-recommends postgresql-client && rm -rf /var/lib/apt/lists/* - 若基础镜像是CentOS/RHEL系列,使用命令:
RUN yum install -y postgresql && yum clean all
部分镜像可能需要额外安装
postgresql-client-common类依赖包,才能确保pg_isready被正确部署。- 若基础镜像是Debian/Ubuntu系列,确保使用命令:
验证
pg_isready的存在与路径
手动进入Hive容器,执行命令确认命令是否存在:docker exec -it <hive-container-name> /bin/bash which pg_isready如果返回空路径,说明客户端未正确安装;如果返回具体路径(比如
/usr/bin/pg_isready),则需确保entrypoint.sh中使用绝对路径调用,或把该路径加入环境变量。修正entrypoint.sh中的调用方式
若pg_isready存在但不在默认PATH中,可在entrypoint.sh的调用语句前添加绝对路径,例如:/usr/bin/pg_isready -h <postgres-host> -p <postgres-port>或者在entrypoint.sh开头添加PATH配置:
export PATH=$PATH:/usr/bin清理Docker构建缓存
若修改Dockerfile后未重新构建镜像,容器可能仍在使用旧镜像。执行命令重新构建:docker-compose build --no-cache hive
内容的提问来源于stack exchange,提问作者jr134
相关产品推荐
相关产品推荐

