我也有同样的问题,但使用了maven docker 镜像(它基于 OracleLinux 8)。
Oracle Linux 8 和 Postgresql13 客户端
在上面安装postgresql客户端是非常不寻常的,所以,让我们考虑一下我的步骤:
-
https://www.postgresql.org/download/linux/redhat/
选择RHEL 8,接收rpm包链接
-
使用rpm手动安装
microdnf install -y wget
wget https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm -O /tmp/pg_repo.rpm
rpm -i /tmp/pg_repo.rpm
-
确定没有postgresql13 包。点击direct download链接并选择RHEL 8:https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-8-x86_64/
-
下载postgresql13-13.x.x...包(最新)
wget https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-8-x86_64/postgresql13-13.3-2PGDG.rhel8.x86_64.rpm -O /tmp/pgql.rpm
该 rpm 的依赖项列表:
libicu is needed by postgresql13-13.3-2PGDG.rhel8.x86_64
libpq.so.5()(64bit) is needed by postgresql13-13.3-2PGDG.rhel8.x86_64
postgresql13-libs(x86-64) = 13.3-2PGDG.rhel8 is needed by postgresql13-13.3-2PGDG.rhel8.x86_64
systemd is needed by postgresql13-13.3-2PGDG.rhel8.x86_64
systemd-sysv is needed by postgresql13-13.3-2PGDG.rhel8.x86_64
- 安装依赖项
microdnf install -y systemd postgresql13-libs libicu
- 最后,安装客户端
rpm -i /tmp/pgql.rpm
现在您可以清除缓存并测试客户端,例如pg_dump 命令。
结果 Dockerfile 命令:
RUN microdnf install -y wget && \
wget https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm -O /tmp/pg_repo.rpm && \
rpm -i /tmp/pg_repo.rpm && \
microdnf install -y systemd postgresql13-libs libicu && \
wget https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-8-x86_64/postgresql13-13.3-2PGDG.rhel8.x86_64.rpm -O /tmp/pgql.rpm && \
rpm -i /tmp/pgql.rpm && \
rm -f /tmp/pg_repo.rpm /tmp/pgql.rpm && \
microdnf remove -y wget
RHEL 8 和 Postgresql13 客户端(您的情况)
现在让我们考虑一下您的情况,图像 jboss/keycloak:14.0.0 基于 RHEL 8。
警告:如果您收到错误消息 error: Failed to create: /var/cache/yum/metadata,请以 root 用户身份运行,然后将用户切换回 jboss。
所有步骤和 Dockerfile 命令都是一样的。
如果有任何错误或没有很好地描述,请告诉我。