Hi, Here is a patch (first contribution \o/) that solves the issue by importing the servers.json anonymously when running in DESKTOP mode. There may be a better way to check if we are running in DESKTOP mode or not but checking PGADMIN_CONFIG_SERVER_MODE should be enough when running pgadmin4 in docker.
Regards, Olivier Levitt ________________________________________ From: Ashesh Vashi [ashesh.va...@enterprisedb.com] Sent: 14 December 2019 05:52 To: Levitt Olivier Cc: pgadmin-hack...@postgresql.org Subject: Re: [Pgadmin] [Docker] servers.json import fails when running in desktop mode <http://www.linkedin.com/in/asheshvashi> On Sat, Dec 14, 2019 at 3:53 AM Levitt Olivier <olivier.lev...@insee.fr<mailto:olivier.lev...@insee.fr>> wrote: Hi, When running the docker image in desktop mode (PGADMIN_CONFIG_SERVER_MODE=False), no user is created. That is expected behaviour. But then the code that imports the servers.json pre-configuration fails as it ties the import to the default user. I think line 40 of entrypoint.sh (https://git.postgresql.org/gitweb/?p=pgadmin4.git;a=blob;f=pkg/docker/entrypoint.sh;h=47d14bf2d415777c64b221fb1fc75d61c5e3cecc;hb=HEAD) should not specify a user when running in dekstop mode. I tested it without --user parameter and it successfully imported the servers.json configuration. Should I submit a patch ? First time contributing to Pgadmin :) Please do. -- Thanks & Regards, Ashesh Vashi EnterpriseDB INDIA: Enterprise PostgreSQL Company<http://www.enterprisedb.com> http://www.linkedin.com/in/asheshvashi Regards, Olivier Levitt
diff --git a/pkg/docker/entrypoint.sh b/pkg/docker/entrypoint.sh index 47d14bf2d..e8434329d 100755 --- a/pkg/docker/entrypoint.sh +++ b/pkg/docker/entrypoint.sh @@ -37,7 +37,13 @@ if [ ! -f /var/lib/pgadmin/pgadmin4.db ]; then export PGADMIN_SERVER_JSON_FILE=${PGADMIN_SERVER_JSON_FILE:-/pgadmin4/servers.json} # Pre-load any required servers if [ -f "${PGADMIN_SERVER_JSON_FILE}" ]; then - /usr/local/bin/python /pgadmin4/setup.py --load-servers "${PGADMIN_SERVER_JSON_FILE}" --user ${PGADMIN_DEFAULT_EMAIL} + # When running in Desktop mode, no user is created + # so we have to import servers anonymously + if [ "${PGADMIN_CONFIG_SERVER_MODE}" = "False" ]; then + /usr/local/bin/python /pgadmin4/setup.py --load-servers "${PGADMIN_SERVER_JSON_FILE}" + else + /usr/local/bin/python /pgadmin4/setup.py --load-servers "${PGADMIN_SERVER_JSON_FILE}" --user ${PGADMIN_DEFAULT_EMAIL} + fi fi fi