无法将 postgresql-client-16 安装到 docker 容器中

问题描述 投票:0回答:1

我有一个像这样开始的

Dockerfile

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
RUN apt-get update && apt-get install -y --no-install-recommends postgresql-client

这将按预期安装 PostgreSQL 客户端,但版本错误。

pg_dump: pg_dump: error: aborting because of server version mismatch
pg_dump: pg_dump: detail: server version: 16.1 (Debian 16.1-1.pgdg120+1); pg_dump version: 15.6 (Debian 15.6-0+deb12u1)

尝试指定版本

postgresql-client-16
直接导致

Unable to locate package postgresql-client-16

直接添加源会导致一些新的错误消息

RUN apt-get update && apt-get install -y wget gnupg2
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /usr/share/keyrings/postgresql.gpg
RUN echo "deb [signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgdg.list
RUN apt-get update && apt-get install -y --no-install-recommends postgresql-client-16
postgresql-client-16 : Depends: libpq5 (>= 16.2) but it is not going to be installed
                       Depends: libssl1.1 (>= 1.1.0) but it is not installable

尝试安装库也会导致错误。 我在这里做错了什么以及如何在 Docker 映像中安装

postgres-client
工具?

postgresql docker dockerfile debian
1个回答
0
投票

如果您使用 Alpine 3.19 基础镜像,那么您将获得一个可与主要版本 16 的服务器配合使用的 PostgreSQL 客户端版本。

FROM FROM mcr.microsoft.com/dotnet/aspnet:8.0-alpine as base

RUN apk add --no-cache postgresql-client

CMD pg_dump --version
 as base

RUN apk add --no-cache postgresql-client

CMD pg_dump --version

生成的

pg_dump
版本是

pg_dump (PostgreSQL) 16.2
© www.soinside.com 2019 - 2024. All rights reserved.