Re: pgadmin4 container install: volume mapping - Mailing list pgadmin-support

From Dave Page
Subject Re: pgadmin4 container install: volume mapping
Date
Msg-id CA+OCxozeHuJwqn_GFuwvAQs7bbGXQH2UchzXD02QQ3iyoVTT0Q@mail.gmail.com
Whole thread Raw
In response to pgadmin4 container install: volume mapping  (Bo Guo <bo.guo@gisticinc.com>)
Responses Re: pgadmin4 container install: volume mapping  (Bo Guo <bo.guo@gisticinc.com>)
List pgadmin-support
Hi

On Sun, May 17, 2020 at 11:00 PM Bo Guo <bo.guo@gisticinc.com> wrote:

Hi list,

I have been using the docker container install of pgAdmin4 for about a year and half, during which time I tried several times trying to make volume mapping work, to no avail.

Yes, the docker installation is very clean and simple.  But I just could not make volume mapping to work so that script files saved can be accessed easily, and server connections or any session related history etc. can be preserved when updating to use latest container images.  I hope someone can provide a pointer or two to help me.

Here is what I used to create the instance

docker run --name "pgadmin4.21" \ 
-p 5050:80 \ 
-e 'PGADMIN_DEFAULT_EMAIL=pgadmin@example.com' \ 
-e 'PGADMIN_DEFAULT_PASSWORD=123456' \ 
-d dpage/pgadmin4 \ 
-v /opt/pgadmin_session:/var/lib/pgadmin \ 
-v /opt/pgadmin_config:/pgadmin4 

Docker Inspection shows the container having

            "Env": [
                "PGADMIN_DEFAULT_EMAIL=pgadmin@example.com",
                "PGADMIN_DEFAULT_PASSWORD=123456",
                "PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "LANG=C.UTF-8",
                "GPG_KEY=0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D",
                "PYTHON_VERSION=3.7.7",
                "PYTHON_PIP_VERSION=20.0.2",
                "PYTHON_GET_PIP_URL=https://github.com/pypa/get-pip/raw/d59197a3c169cef378a22428a3fa99d33e080a5d/get-pip.py",
                "PYTHON_GET_PIP_SHA256=421ac1d44c0cf9730a088e337867d974b91bdce4ea2636099275071878cc189e",
                "PYTHONPATH=/pgadmin4"
            ],
            "Cmd": [
                "-v",
                "/opt/pgadmin_session:/var/lib/pgadmin",
                "-v",
                "/opt/pgadmin_config:/pgadmin4"
            ],

Before I start the container instance, I made sure the folders were accessible

sudo mkdir /opt/pgadmin_session 
sudo mkdir /opt/pgadmin_config 
sudo chown 5050:5050  /opt/pgadmin_session 
sudo chown 5050:5050  /opt/pgadmin_config 
sudo chmod -R 777 /opt/pgadmin_session 
sudo chmod -R 777 /opt/pgadmin_config
Technically you shouldn't need the chmods (and I would probably remove them as they give read/write permission to anyone with access to your machine). A couple of thoughts:

- Is Docker configured to allow mapping directories in /opt? On my mac, that directory isn't allowed by default.

Screenshot 2020-05-18 at 10.15.12.png

- If you're on a Linux box, is selinux enabled and possibly blocking access to those directories?
 
--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment

pgadmin-support by date:

Previous
From: Khushboo Vashi
Date:
Subject: Re: Unable to open query tool
Next
From: Adam Senger
Date:
Subject: Pgadmin 4 running error