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

在openSUSE中通过Dockerfile无法安装PostgreSQL 15.5

问题:Docker构建镜像时无法安装PostgreSQL 15.5(实际得到15.3)

我尝试通过Dockerfile构建镜像以安装PostgreSQL 15.5,使用了如下代码:

# install postgres
RUN zypper --non-interactive --quiet addrepo --refresh -p 90  http://download.opensuse.org/repositories/server:database:postgresql/15.5/ PostgreSQL
RUN zypper --gpg-auto-import-keys ref
RUN zypper --non-interactive in postgresql postgresql-server postgresql-contrib

但通过docker exec进入容器后,查询到的PostgreSQL版本为15.3。需要安装15.5版本,已尝试多种方法但均未解决。


解决方法

1. 强制指定版本安装

Zypper默认会选择匹配依赖的版本,但如果基础镜像自带仓库的优先级更高,可能会拉取旧版本。修改安装命令,明确指定15.5系列的包:

# install postgres
RUN zypper --non-interactive --quiet addrepo --refresh -p 10 http://download.opensuse.org/repositories/server:database:postgresql/15.5/ PostgreSQL
RUN zypper --gpg-auto-import-keys ref
# 强制安装15.5版本
RUN zypper --non-interactive in postgresql=15.5* postgresql-server=15.5* postgresql-contrib=15.5*

2. 先移除旧版本再安装

如果基础镜像已经预装了PostgreSQL 15.3,先彻底移除再安装目标版本:

# install postgres
RUN zypper --non-interactive --quiet addrepo --refresh -p 10 http://download.opensuse.org/repositories/server:database:postgresql/15.5/ PostgreSQL
RUN zypper --gpg-auto-import-keys ref
# 移除已存在的PostgreSQL包(忽略不存在的情况)
RUN zypper --non-interactive remove -y postgresql postgresql-server postgresql-contrib || true
# 安装指定版本
RUN zypper --non-interactive in postgresql=15.5* postgresql-server=15.5* postgresql-contrib=15.5*

3. 验证仓库包信息(调试用)

如果仍有问题,可以在构建时添加命令,查看仓库中可用的PostgreSQL版本,确认仓库是否正确提供15.5:

RUN zypper se -s postgresql

构建时会输出所有可用的PostgreSQL包版本,检查是否存在15.5的条目。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 09:39:58