【问题标题】:how to build docker Image with for pgbouncer 1.12.0 with pgbouncer-rr patch?如何使用 pgbouncer-rr 补丁为 pgbouncer 1.12.0 构建 docker Image?
【发布时间】:2022-01-18 08:37:38
【问题描述】:

带有 rr 补丁的 Pgbouncer 1.12.0 我想要带有 pgbouncer-rr 补丁的 docker 映像,以前是否有任何机构这样做并在 docker 中运行。请让我知道并提供此问题的解决方案。

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: docker dockerfile pgbouncer


【解决方案1】:

遗憾的是 pgbouncer-rr 目前不使用发布标签,而且他们在记录补丁兼容的 PgBouncer 版本方面相当落后——在撰写本文时它似乎是 1.16.1。 (供将来参考,pgbouncer-rr-patch 在提交时96d89db89)。

这个 Dockerfile 似乎可以工作。它基于 CentOS 8 并使用构建阶段来最小化生成的图像。将一个名为 config 的文件夹与相应的配置文件(pgbouncer.iniusers.txt、...)放在旁边。

请注意,一旦 pgbouncer-rr-patch 更新到更新版本并放弃对 1.16.1 的支持,这将停止工作,因此添加 git checkout 96d89db89 以冻结到当前补丁版本可能是个好主意手动更新。

FROM centos:8 AS builder

RUN yum install -y \
        git \
        libevent-devel \
        libtool \
        make \
        openssl-devel \
        patch \
        python38-devel

RUN git clone --recurse-submodules --branch pgbouncer_1_16_1 https://github.com/pgbouncer/pgbouncer.git /opt/pgbouncer &&\
    git clone https://github.com/awslabs/pgbouncer-rr-patch.git /opt/pgbouncer-rr-patch &&\
    cd /opt/pgbouncer-rr-patch && ./install-pgbouncer-rr-patch.sh /opt/pgbouncer &&\
    cd /opt/pgbouncer && ./autogen.sh && ./configure && make && make install

FROM centos:8 AS pgbouncer

RUN yum install -y \
        libevent \
        python38-libs &&\
    yum -y clean all &&\
    rm -rf /var/cache

COPY --from=builder /usr/local/bin/pgbouncer /usr/local/bin/pgbouncer

RUN useradd pgbouncer

COPY --chown=pgbouncer:pgbouncer config /etc/pgbouncer-rr

USER pgbouncer

CMD ["/usr/local/bin/pgbouncer", "/etc/pgbouncer-rr/pgbouncer.ini"]

【讨论】:

    猜你喜欢
    • 2020-04-12
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 2023-01-24
    • 2015-02-12
    • 2014-01-14
    • 2012-05-12
    相关资源
    最近更新 更多