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