diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1a8780b..1ca995d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -66,6 +66,7 @@ ruby-2.6-golang-1.13-git-2.27 test: *test_custom ruby-2.6-golang-1.14-git-2.25 test: *test_custom ruby-2.6-golang-1.14-git-2.26 test: *test_custom ruby-2.6-golang-1.14-git-2.27 test: *test_custom +ruby-2.6-golang-1.14-git-2.27-pgbouncer-1.14 test: *test_custom # Used by GitLab: https://gitlab.com/gitlab-org/gitlab/blob/master/.gitlab-ci.yml ruby-2.6.6-golang-1.14-git-2.27-lfs-2.9-chrome-83-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34 test: *test_custom @@ -127,6 +128,7 @@ ruby-2.6-golang-1.13-git-2.27: *build_and_deploy_custom ruby-2.6-golang-1.14-git-2.25: *build_and_deploy_custom ruby-2.6-golang-1.14-git-2.26: *build_and_deploy_custom ruby-2.6-golang-1.14-git-2.27: *build_and_deploy_custom +ruby-2.6-golang-1.14-git-2.27-pgbouncer-1.14: *build_and_deploy_custom # Used by GitLab CE/EE: https://gitlab.com/gitlab-org/gitlab-ee/blob/master/.gitlab-ci.yml ruby-2.6.6-golang-1.14-git-2.27-lfs-2.9-chrome-83-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34: *build_and_deploy_custom diff --git a/Dockerfile.custom b/Dockerfile.custom index dfeb798..d447279 100644 --- a/Dockerfile.custom +++ b/Dockerfile.custom @@ -66,6 +66,11 @@ RUN if [ -n "$GRAPHISMAGICK_VERSION" ]; then /scripts/install-graphicsmagick && ARG DOCKER_VERSION RUN if [ -n "$DOCKER_VERSION" ]; then /scripts/install-docker $DOCKER_VERSION; fi +# PgBouncer +ARG PGBOUNCER_VERSION +ARG PGBOUNCER_DOWNLOAD_SHA256 +RUN if [ -n "$PGBOUNCER_VERSION" ] ; then /scripts/install-pgbouncer $PGBOUNCER_VERSION $PGBOUNCER_DOWNLOAD_SHA256; fi + RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en diff --git a/README.md b/README.md index 67c534c..71dc6a7 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,7 @@ options are: 1. `terraform` 1. `ansible` 1. `graphicsmagick` +1. `pgbouncer` #### Adding a new build diff --git a/scripts/custom-docker-build b/scripts/custom-docker-build index 34727ee..68ef1dc 100755 --- a/scripts/custom-docker-build +++ b/scripts/custom-docker-build @@ -180,6 +180,19 @@ function print_graphicsmagick_args() { printf -- "--build-arg GRAPHISMAGICK_DOWNLOAD_SHA256=%s " "$GRAPHISMAGICK_DOWNLOAD_SHA256" } +function print_pgbouncer_args() { + case "$1" in + 1.14) + PGBOUNCER_VERSION=1.14.0 + PGBOUNCER_DOWNLOAD_SHA256=a0c13d10148f557e36ff7ed31793abb7a49e1f8b09aa2d4695d1c28fa101fee7 + ;; + *) echo "Unknown pgbouncer version $1"; exit 1; + esac + + printf -- "--build-arg PGBOUNCER_VERSION=%s " "$PGBOUNCER_VERSION" + printf -- "--build-arg PGBOUNCER_DOWNLOAD_SHA256=%s " "$PGBOUNCER_DOWNLOAD_SHA256" +} + function parse_arguments() { read base read base_version @@ -206,6 +219,7 @@ function parse_arguments() { ansible) print_ansible_args $version ;; terraform) print_terraform_args $version ;; graphicsmagick) print_graphicsmagick_args $version ;; + pgbouncer) print_pgbouncer_args $version ;; *) exit 1;; esac done diff --git a/scripts/install-pgbouncer b/scripts/install-pgbouncer new file mode 100755 index 0000000..7738231 --- /dev/null +++ b/scripts/install-pgbouncer @@ -0,0 +1,22 @@ +#!/bin/bash + +PGBOUNCER_VERSION=${1} +PGBOUNCER_DOWNLOAD_SHA256=${2} + +PGBOUNCER_DOWNLOAD_URL="https://www.pgbouncer.org/downloads/files/${PGBOUNCER_VERSION}/pgbouncer-${PGBOUNCER_VERSION}.tar.gz" + +curl -fsSL "$PGBOUNCER_DOWNLOAD_URL" -o pgbouncer.zip +echo "${PGBOUNCER_DOWNLOAD_SHA256} pgbouncer.zip" | sha256sum -c - +unzip -d /usr/local/bin pgbouncer.zip +rm pgbouncer.zip + +curl -o pgbouncer.tar.gz -L https://pgbouncer.github.io/downloads/files/$PGBOUNCER_VERSION/pgbouncer-$PGBOUNCER_VERSION.tar.gz + +tar xvfz pgbouncer.tar.gz +cd pgbouncer-${PGBOUNCER_VERSION} +./configure --prefix=/usr/local +make +cp pgbouncer /usr/local/bin + +cd .. +rm -rf pgbouncer-${PGBOUNCER_VERSION}