Re: Help with running pgadmin in a docker container

From: Aditya Toshniwal <aditya(dot)toshniwal(at)enterprisedb(dot)com>
To: Simon Thorpe <simon(at)thorpevillage(dot)com>
Cc: "pgadmin-support(at)lists(dot)postgresql(dot)org" <pgadmin-support(at)lists(dot)postgresql(dot)org>
Subject: Re: Help with running pgadmin in a docker container
Date: 2023-05-17 05:52:55
Message-ID: CAM9w-_k_5aefitsJBK6WDT8FtSKn7pJeEvKQTYeJ9p5NCV1KVQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-support

Hi Simon,

Can you try with docker env var -
PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION=False?

On Wed, May 17, 2023 at 12:03 AM Simon Thorpe <simon(at)thorpevillage(dot)com>
wrote:

> So here is my temporary solution, given the environment I am building is
> not a critical production system and only used for testing.
>
> docker compose up -d
> docker exec -it -u0 pgadmin sed -i "/app\.config\['sessions'] =
> dict\(\)/a\app\.config\['WTF_CSRF_ENABLED'\] = False"
> /pgadmin4/pgAdmin4.py
>
> After the docker container starts, I am inserting the above Python line to
> disable Flask from CSRF checking. With this, I can now easily access the
> app without getting the errors.
>
> Simon
> ------------------------------
> *From:* Simon Thorpe <simon(at)thorpevillage(dot)com>
> *Sent:* Tuesday, May 16, 2023 8:17 AM
> *To:* Aditya Toshniwal <aditya(dot)toshniwal(at)enterprisedb(dot)com>
> *Cc:* pgadmin-support(at)lists(dot)postgresql(dot)org <
> pgadmin-support(at)lists(dot)postgresql(dot)org>
> *Subject:* Re: Help with running pgadmin in a docker container
>
> Attached...
>
> Seems like a csrf problem. A quick google search and it seems that when
> Docker is
>
>
> https://stackoverflow.com/questions/65233859/dockerize-pgadmin-the-csrf-tokens-do-not-match
>
> So I tried accessing the server in Firefox. And it all worked fine. Went
> back to Chrome, closed all my tabs and accessed the server again, now
> Chrome works. Logged out on Chrome, and attempted to log back in. Get the
> errors again.
>
> Closed Chrome again, returned to the pgadmin login page and logged in.
> Works fine.
>
> So it seems that upon a logout and return, using the same browser tab,
> it's failing the csrf check. Should the logout call delete a cookie or
> something?
>
>
> Simon
> ------------------------------
> *From:* Aditya Toshniwal <aditya(dot)toshniwal(at)enterprisedb(dot)com>
> *Sent:* Monday, May 15, 2023 10:36 PM
> *To:* Simon Thorpe <simon(at)thorpevillage(dot)com>
> *Cc:* pgadmin-support(at)lists(dot)postgresql(dot)org <
> pgadmin-support(at)lists(dot)postgresql(dot)org>
> *Subject:* Re: Help with running pgadmin in a docker container
>
> Hi Simon,
>
> Can you please share the docker logs for v7?
>
> On Tue, May 16, 2023 at 6:21 AM Simon Thorpe <simon(at)thorpevillage(dot)com>
> wrote:
>
> Note, I rolled back and used 6.21 of pgadmin...
>
> pgadmin:
> container_name: pgadmin
> image: dpage/pgadmin4:6.21
> depends_on:
> - postgresdb
> environment:
> - PGADMIN_DEFAULT_PASSWORD=nottherealpassword
> - PGADMIN_DEFAULT_EMAIL=admin(at)domain(dot)com
> ports:
> - "3004:80"
>
> I still get an error, but this time the UX shows a red box lower right
> with the error...
>
> "INTERNAL SERVER ERROR"
>
> and then disappears.
>
> again a whole load of 400 errors in the browser console.
>
> The UX also doesn't show the "Servers" item under the "Browser" heading on
> the left hand menu.
>
> Something not right. Would love some pointers as to how to get it working.
> I would imagine this would also fail for others as I am using a pretty
> standard container for both pgadmin and postgres.
>
> Simon
> ------------------------------
> *From:* Simon Thorpe <simon(at)thorpevillage(dot)com>
> *Sent:* Monday, May 15, 2023 5:40 PM
> *To:* pgadmin-support(at)lists(dot)postgresql(dot)org <
> pgadmin-support(at)lists(dot)postgresql(dot)org>
> *Subject:* Help with running pgadmin in a docker container
>
> Hi
>
> I'm running a postgres server in a docker container and pgadmin in another
> docker container, i'm using a docker compose file to build them both. I am
> able to start both containers fine, I can access the pgadmin UI fine. I can
> login and add a new server, all seems well. I can see and navigate the
> postgres server via the pgadmin UX.
>
> However, if I logout and back in, I cannot use the UX at all. The browser
> throws a lot of errors and I can't even re-add the server. Not sure what is
> going on. My environment is the following...
>
> services:
> pgadmin:
> container_name: pgadmin
> image: dpage/pgadmin4
> depends_on:
> - postgresdb
> environment:
> - PGADMIN_DEFAULT_PASSWORD=nottherealpassword
> - PGADMIN_DEFAULT_EMAIL=admin(at)domain(dot)com
> ports:
> - "3004:80"
> postgresdb:
> image: postgres:15
> container_name: postgresdb
> environment:
> - POSTGRES_DB=postgres
> - POSTGRES_PASSWORD=nottherealpassword
> - POSTGRES_USER=admin
> volumes:
> - postgresdb:/var/lib/postgresql/
> volumes:
> postgresdb:
>
> When I attempt to relogin, I can authenticate. But the browser throws the
> errors below. It hints that the local pgadmin database is corrupted
> (/var/lib/pgadmin/pgadmin4.db?).
>
> Any clues as to how I get this working?
>
> GET https://pgadmin.skyflash.co/browser/nodes/ 400
> app.bundle.js?ver=70100:2 Uncaught (in promise) Error: Node Load Error...
> at app.bundle.js?ver=70100:2:2318033
> at s (app.bundle.js?ver=70100:2:2309094)
> at Generator.<anonymous> (app.bundle.js?ver=70100:2:2310431)
> at Generator.next (app.bundle.js?ver=70100:2:2309457)
> at y (app.bundle.js?ver=70100:2:2315084)
> at i (app.bundle.js?ver=70100:2:2315287)
> POST https://pgadmin.skyflash.co/browser/master_password 400
> GET https://pgadmin.skyflash.co/browser/check_corrupted_db_file 400
> Error: Minified React error #31; visit
> https://reactjs.org/docs/error-decoder.html?invariant=31&args[]=Error%3A%20Request%20failed%20with%20status%20code%20400
> for the full message or use the non-minified dev environment for full
> errors and additional helpful warnings.
> at xo (vendor.others.js?ver=70100:109:3096293)
> at vendor.others.js?ver=70100:109:3101114
> at Fs (vendor.others.js?ver=70100:109:3112100)
> at $a (vendor.others.js?ver=70100:109:3157983)
> at Tl (vendor.others.js?ver=70100:109:3143455)
> at kl (vendor.others.js?ver=70100:109:3143383)
> at El (vendor.others.js?ver=70100:109:3143246)
> at yl (vendor.others.js?ver=70100:109:3140233)
> at vendor.others.js?ver=70100:109:3089971
> at t.unstable_runWithPriority (vendor.others.js?ver=70100:109:3476540)
> GET https://pgadmin.skyflash.co/misc/bgprocess/ 400
> Error: Request failed with status code 400
> at e.exports (vendor.others.js?ver=70100:109:168712)
> at e.exports (vendor.others.js?ver=70100:109:171135)
> at XMLHttpRequest.v (vendor.others.js?ver=70100:109:164032)
> Uncaught (in promise) Error: Minified React error #31; visit
> https://reactjs.org/docs/error-decoder.html?invariant=31&args[]=Error%3A%20Request%20failed%20with%20status%20code%20400
> for the full message or use the non-minified dev environment for full
> errors and additional helpful warnings.
> at xo (vendor.others.js?ver=70100:109:3096293)
> at vendor.others.js?ver=70100:109:3101114
> at Fs (vendor.others.js?ver=70100:109:3112100)
> at $a (vendor.others.js?ver=70100:109:3157983)
> at Tl (vendor.others.js?ver=70100:109:3143455)
> at kl (vendor.others.js?ver=70100:109:3143383)
> at El (vendor.others.js?ver=70100:109:3143246)
> at yl (vendor.others.js?ver=70100:109:3140233)
> at vendor.others.js?ver=70100:109:3089971
> at t.unstable_runWithPriority (vendor.others.js?ver=70100:109:3476540)
> POST https://pgadmin.skyflash.co/settings/store 400
> Uncaught (in promise) Error: Request failed with status code 400
> at e.exports (vendor.others.js?ver=70100:109:168712)
> at e.exports (vendor.others.js?ver=70100:109:171135)
> at XMLHttpRequest.v (vendor.others.js?ver=70100:109:164032)
>
>
>
> --
> Thanks,
> Aditya Toshniwal
> pgAdmin Hacker | Sr. Software Architect | *enterprisedb.com*
> <https://www.enterprisedb.com/>
> "Don't Complain about Heat, Plant a TREE"
>

--
Thanks,
Aditya Toshniwal
pgAdmin Hacker | Sr. Software Architect | *enterprisedb.com*
<https://www.enterprisedb.com/>
"Don't Complain about Heat, Plant a TREE"

In response to

Browse pgadmin-support by date

  From Date Subject
Next Message Tim Uckun 2023-05-17 10:01:30 Using pgadmin in docker via compose
Previous Message Simon Thorpe 2023-05-16 18:32:59 Re: Help with running pgadmin in a docker container