Docker failing to launch due to postgres

When I try to launch OpenVas, the container fails to launch due to postgres

pg-gvm-1               | psql: error: could not connect to server: No such file or directory
pg-gvm-1               |        Is the server running locally and accepting
pg-gvm-1               |        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
report-formats-1       | changed user permissions to 1001
report-formats-1       | changed group permissions to 1001
report-formats-1       | files copied.
configure-openvas-1 exited with code 0
pg-gvm-1               | psql: error: could not connect to server: No such file or directory
pg-gvm-1               |        Is the server running locally and accepting
pg-gvm-1               |        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
pg-gvm-1               | psql: error: could not connect to server: No such file or directory
pg-gvm-1               |        Is the server running locally and accepting
pg-gvm-1               |        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
pg-gvm-1               | psql: error: could not connect to server: No such file or directory
pg-gvm-1               |        Is the server running locally and accepting
pg-gvm-1               |        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
pg-gvm-1               | psql: error: could not connect to server: No such file or directory
pg-gvm-1               |        Is the server running locally and accepting
pg-gvm-1               |        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
dfn-cert-data-1 exited with code 0
report-formats-1 exited with code 0
pg-gvm-1               | psql: error: could not connect to server: No such file or directory
pg-gvm-1               |        Is the server running locally and accepting
pg-gvm-1               |        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
pg-gvm-1               | psql: error: could not connect to server: No such file or directory
pg-gvm-1               |        Is the server running locally and accepting
pg-gvm-1               |        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
pg-gvm-1               | Error: /var/lib/postgresql/13/main is not accessible or does not exist
pg-gvm-1               | Error: /var/lib/postgresql/13/main is not accessible or does not exist
pg-gvm-1               | Deleted verification file.
pg-gvm-1 exited with code 0

Same here.

Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               | Error: /usr/lib/postgresql/13/bin/pg_ctl /usr/lib/postgresql/13/bin/pg_ctl start -D /var/lib/postgresql/13/main -l /var/log/postgresql/postgresql-13-main.log -s -o  -c config_file="/etc/postgresql/13/main/postgresql.conf" -k /tmp -c listen_addresses='' exited with status 1:
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               | pg_ctl: server did not start in time
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               | psql: error: could not connect to server: No such file or directory
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               |         Is the server running locally and accepting
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               |         connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               | createuser: error: could not connect to database template1: could not connect to server: No such file or directory
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               |         Is the server running locally and accepting
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               |         connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               | psql: error: could not connect to server: No such file or directory
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               |         Is the server running locally and accepting
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               |         connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               | createdb: error: could not connect to database template1: could not connect to server: No such file or directory
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               |         Is the server running locally and accepting
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               |         connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               | psql: error: could not connect to server: No such file or directory
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               |         Is the server running locally and accepting
Apr 03 13:13:20 openvas docker[154176]: pg-gvm-1               |         connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               | psql: error: could not connect to server: No such file or directory
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         Is the server running locally and accepting
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               | psql: error: could not connect to server: No such file or directory
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         Is the server running locally and accepting
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               | psql: error: could not connect to server: No such file or directory
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         Is the server running locally and accepting
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               | psql: error: could not connect to server: No such file or directory
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         Is the server running locally and accepting
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               | psql: error: could not connect to server: No such file or directory
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         Is the server running locally and accepting
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               | psql: error: could not connect to server: No such file or directory
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         Is the server running locally and accepting
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               | psql: error: could not connect to server: No such file or directory
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         Is the server running locally and accepting
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               | psql: error: could not connect to server: No such file or directory
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         Is the server running locally and accepting
Apr 03 13:13:21 openvas docker[154176]: pg-gvm-1               |         connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

It takes multiple retries to get psql up.

You need to add a dependency that your database is up and running before you start the rest.

I’m seeing the same problem quite often. The official docker-compose.yml only checks that pg-gvm has started. It should probably wait until “service_healthy”, but I’m not sure what should the healtcheck be for the pg-gvm service.

gvmd:
....
    depends_on:
      pg-gvm:
        condition: service_started