我可以在不安装 postgresQL 的情况下使用 pg_dumpall 吗?

Can I use pg_dumpall withtout installing postgresQL?

我尝试在我的 docker 容器(从 alpine3.6)到 运行 命令安装 pg_dumpall 我在网上看到:

apk update && apk upgrade

然后

apk add --no-cache postgresql-client-common

最后

apk add --no-cache postgresql-client

我试过的两个安装中只有最后一个有效(没有通用的那个),但我的二进制文件中仍然没有 pg_dumppg_dumpall

尝试

apk add postgresql-client

您可以在这个 link 中看到这个包的所有包含的二进制文件。这个包有 pg_dumpall

https://pkgs.alpinelinux.org/contents?file=&path=&name=postgresql-client&branch=v3.8&repo=main&arch=aarch64

每个 alpine 版本都有不同的 postgresql-client。对于我自己,我写了那些逻辑:

ARG PSQL_VERSION=0
RUN if [ "$PSQL_VERSION" = "13" ]; then \
        echo "http://dl-cdn.alpinelinux.org/alpine/v3.14/main" >> /etc/apk/repositories; \
    elif [ "$PSQL_VERSION" = "12" ]; then \
        echo "http://dl-cdn.alpinelinux.org/alpine/v3.12/main" >> /etc/apk/repositories; \
    elif [ "$PSQL_VERSION" = "11" ]; then \
        echo "http://dl-cdn.alpinelinux.org/alpine/v3.10/main" >> /etc/apk/repositories; \
    elif [ "$PSQL_VERSION" = "10" ]; then \
            echo "http://dl-cdn.alpinelinux.org/alpine/v3.8/main" >> /etc/apk/repositories; \
    fi
RUN apk update
RUN apk --no-cache add postgresql-client

现在您可以传递所需的客户端版本:

docker build -t backuper --build-arg PSQL_VERSION=12 .