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