Add pgbouncer
This commit is contained in:
parent
cf25c872b6
commit
40da27ad79
|
@ -0,0 +1,12 @@
|
||||||
|
FROM ubuntu:14.04
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get -y install wget
|
||||||
|
RUN wget --quiet --no-check-certificate -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
|
||||||
|
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list
|
||||||
|
RUN apt-get update
|
||||||
|
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install pgbouncer
|
||||||
|
|
||||||
|
ADD run.sh /run.sh
|
||||||
|
|
||||||
|
EXPOSE 5432
|
||||||
|
CMD /run.sh
|
|
@ -0,0 +1,19 @@
|
||||||
|
# `docker-pgbouncer`
|
||||||
|
|
||||||
|
docker image for pgbouncer
|
||||||
|
|
||||||
|
Example usage:
|
||||||
|
`docker run -i -t -d -p 6432:6432 --link postgres:pg xena/docker-pgbouncer`
|
||||||
|
|
||||||
|
This requires a link (named pg) to a postgres container or manually configured
|
||||||
|
environment variables as follows:
|
||||||
|
|
||||||
|
`PG_PORT_5432_TCP_ADDR` (default: <empty>)
|
||||||
|
|
||||||
|
`PG_PORT_5432_TCP_PORT` (default: <empty>)
|
||||||
|
|
||||||
|
`PG_ENV_POSTGRESQL_USER` (default: <empty>)
|
||||||
|
|
||||||
|
`PG_ENV_POSTGRESQL_PASS` (default: <empty>)
|
||||||
|
|
||||||
|
Based on https://github.com/mbentley/dockerfiles/tree/master/ubuntu/pgbouncer
|
|
@ -0,0 +1,43 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
PG_PORT_5432_TCP_ADDR=${PG_PORT_5432_TCP_ADDR:-}
|
||||||
|
PG_PORT_5432_TCP_PORT=${PG_PORT_5432_TCP_PORT:-}
|
||||||
|
PG_ENV_POSTGRESQL_USER=${PG_ENV_POSTGRESQL_USER:-}
|
||||||
|
PG_ENV_POSTGRESQL_PASS=${PG_ENV_POSTGRESQL_PASS:-}
|
||||||
|
|
||||||
|
if [ ! -f /etc/pgbouncer/pgbconf.ini ]
|
||||||
|
then
|
||||||
|
cat << EOF > /etc/pgbouncer/pgbconf.ini
|
||||||
|
[databases]
|
||||||
|
* = host=${PG_PORT_5432_TCP_ADDR} port=${PG_PORT_5432_TCP_PORT}
|
||||||
|
|
||||||
|
[pgbouncer]
|
||||||
|
logfile = /var/log/postgresql/pgbouncer.log
|
||||||
|
pidfile = /var/run/postgresql/pgbouncer.pid
|
||||||
|
;listen_addr = *
|
||||||
|
listen_addr = 0.0.0.0
|
||||||
|
listen_port = 5432
|
||||||
|
unix_socket_dir = /var/run/postgresql
|
||||||
|
;auth_type = any
|
||||||
|
auth_type = trust
|
||||||
|
auth_file = /etc/pgbouncer/userlist.txt
|
||||||
|
pool_mode = session
|
||||||
|
server_reset_query = DISCARD ALL
|
||||||
|
max_client_conn = 100
|
||||||
|
default_pool_size = 20
|
||||||
|
ignore_startup_parameters = extra_float_digits
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -s /etc/pgbouncer/userlist.txt ]
|
||||||
|
then
|
||||||
|
echo '"'"${PG_ENV_POSTGRESQL_USER}"'" "'"${PG_ENV_POSTGRESQL_PASS}"'"' > /etc/pgbouncer/userlist.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
chown -R postgres:postgres /etc/pgbouncer
|
||||||
|
chown root:postgres /var/log/postgresql
|
||||||
|
chmod 1775 /var/log/postgresql
|
||||||
|
chmod 640 /etc/pgbouncer/userlist.txt
|
||||||
|
|
||||||
|
/usr/sbin/pgbouncer -u postgres /etc/pgbouncer/pgbconf.ini
|
Loading…
Reference in New Issue