Can't connect pgbouncer and postgres running with docker

3.2k views Asked by At

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.
1

There are 1 answers

0
MaximKostrikin On

This line in config and docker opts are not corelated.

host = mydb
--link mydb:mydb

You should read about --link usage inside container. You need update pgbouncer config with real host/port from ENV provided by --link