Re: pgadmin4 container install: volume mapping

From: Bo Guo <bo(dot)guo(at)gisticinc(dot)com>
To: Dave Page <dpage(at)pgadmin(dot)org>
Cc: "pgadmin-support lists(dot)postgresql(dot)org" <pgadmin-support(at)lists(dot)postgresql(dot)org>
Subject: Re: pgadmin4 container install: volume mapping
Date: 2020-05-20 14:38:06
Message-ID: 766c6898-f3be-14f9-dba2-01f33598353d@gisticinc.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-support

Thanks, Dave!

In my the experiments I did yesterday before my last post, I did not
include the mapping of the /pgadmin4 folder at all.  So I still think
there was something going on...

I plan to dive into mount vs v-mapping later this weekend, and will
share my experience.

cheers,

Bo

On 5/20/20 1:07 AM, Dave Page wrote:
> Hi
>
> On Tue, May 19, 2020 at 7:36 PM Bo Guo <bo(dot)guo(at)gisticinc(dot)com
> <mailto:bo(dot)guo(at)gisticinc(dot)com>> wrote:
>
> Hi Dave, Thanks for responding to the post!
>
> Ubuntu uses Apparmor.  With my limited knowledge on Linux, I could
> not find see any policy restrictions.
>
> I did try to volume-map to /pgadmin_session and even
> /tmp/pgadmin_session. However, connection settings, and the saved
> scripts were not showing up in the host folders.  I also tried a
> clean install on a different VM ubuntu 18.04 server with the
> latest Docker version 19.03.9 to no avail.
>
> I ran into this article on Bind Mounts vs Volumes. Please let me
> know if I should try mount instead?
> https://4sysops.com/archives/introduction-to-docker-bind-mounts-and-volumes/
>
>
> I think I just spotted the error. You're mapping /pgadmin4 to
> /opt/pgadmin4_config, however, /pgadmin4 is where the application code
> is in the container, so you're effectively removing the application.
>
> Per the docs at
> https://www.pgadmin.org/docs/pgadmin4/4.21/container_deployment.html#mapped-files-and-directories,
> you should map the config *file*, not the entire directory, for example:
>
> docker run --name "pgadmin4.21" \
> -p 5050:80 \
> -e 'PGADMIN_DEFAULT_EMAIL=pgadmin(at)example(dot)com
> <mailto:PGADMIN_DEFAULT_EMAIL=pgadmin(at)example(dot)com>' \
> -e 'PGADMIN_DEFAULT_PASSWORD=123456' \
> -d dpage/pgadmin4 \
> -v /opt/pgadmin_session:/var/lib/pgadmin \
> -v /opt/pgadmin_config/config_local.py:/pgadmin4/config_local.py
>
> Thanks!
>
> Bo
>
>
> On 5/18/20 2:15 AM, Dave Page wrote:
>> Hi
>>
>> On Sun, May 17, 2020 at 11:00 PM Bo Guo <bo(dot)guo(at)gisticinc(dot)com
>> <mailto:bo(dot)guo(at)gisticinc(dot)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(at)example(dot)com
>> <mailto:PGADMIN_DEFAULT_EMAIL=pgadmin(at)example(dot)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(at)example(dot)com" <mailto:PGADMIN_DEFAULT_EMAIL=pgadmin(at)example(dot)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
>
> --
> Regards,
>
> Bo Guo, PhD, PE
> President
> Gistic Research, Inc.
> 2033 E Warner Rd Ste 105
> Tempe, AZ 85284
> www.gisticinc.com <http://www.gisticinc.com>
> www.youtube.com/linearbench <http://www.youtube.com/linearbench>
> Office: 480-656-9962
> Cell: 602-570-4697
>
>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company

--
Regards,

Bo Guo, PhD, PE
President
Gistic Research, Inc.
2033 E Warner Rd Ste 105
Tempe, AZ 85284
www.gisticinc.com
www.youtube.com/linearbench
Office: 480-656-9962
Cell: 602-570-4697

In response to

Browse pgadmin-support by date

  From Date Subject
Next Message John McCallum 2020-05-20 22:06:28 How to suppress the Notifications Popup?
Previous Message Dave Page 2020-05-20 08:07:41 Re: pgadmin4 container install: volume mapping