So here is the command to start database
sudo docker run --name mydb -e "POSTGRES_USER=user" -e "POSTGRES_PASSWORD=password" -t -d postgres
Here is dockerfile for pgbouncer
from ubuntu
RUN apt-get update && apt-get -y install pgbouncer
COPY /pgbouncer.ini /etc/pgbouncer/
COPY /userlist.txt /etc/pgbouncer/
EXPOSE 6543
And here is the settings for pgbouncer
[databases]
host = mydb
[pgbouncer]
pool_mode = session
listen_addr = localhost
listen_port = 6543
auth_type = plain
auth_file = userlist.txt
user = postgres
userlist.txt
"user "password"
So the image builds well.
sudo docker run -P -p 6543:6543 --name pgbouncer --link mydb:mydb -t leos/pgbouncer pgbouncer /etc/pgbouncer/pgbouncer.ini
I'm starting it with this command and I know that pgbouncer is working, because pgadmin tries to connect to database.
And pgbouncer gives me this output (which for some reason doesn't saying anything about whether is pgbouncer connected to database or not).
2014-12-13 12:28:28.937 1 ERROR host: syntax error in connstring
2014-12-13 12:28:28.937 1 LOG File descriptor limit: 524288 (H:1048576), max_client_conn: 100, max fds possible: 110
2014-12-13 12:28:28.937 1 LOG listening on ::1/6543
2014-12-13 12:28:28.937 1 LOG listening on 127.0.0.1:6543
2014-12-13 12:28:28.937 1 LOG listening on unix:/tmp/.s.PGSQL.6543
2014-12-13 12:28:28.937 1 LOG process up: pgbouncer 1.5.4, libevent 2.0.21-stable (epoll), adns: evdns2
2014-12-13 12:29:28.938 1 LOG Stats: 0 req/s, in 0 b/s, out 0 b/s,query 0 us
2014-12-13 12:30:28.939 1 LOG Stats: 0 req/s, in 0 b/s, out 0 b/s,query 0 us
2014-12-13 12:31:28.940 1 LOG Stats: 0 req/s, in 0 b/s, out 0 b/s,query 0 us
2014-12-13 12:32:28.941 1 LOG Stats: 0 req/s, in 0 b/s, out 0 b/s,query 0 us
2014-12-13 12:33:28.941 1 LOG Stats: 0 req/s, in 0 b/s, out 0 b/s,query 0 us
And here is what I can see in pgadmin
Error: Error connecting to the server: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
This line in config and docker opts are not corelated.
You should read about --link usage inside container. You need update pgbouncer config with real host/port from ENV provided by --link