Re: Problem related to volume creation to pgadmin 4 Docker image

From: Rodrigo Mariano <rodmariano13(at)gmail(dot)com>
To: Dave Page <dpage(at)pgadmin(dot)org>
Cc: Aditya Toshniwal <aditya(dot)toshniwal(at)enterprisedb(dot)com>, pgAdmin Support <pgadmin-support(at)postgresql(dot)org>
Subject: Re: Problem related to volume creation to pgadmin 4 Docker image
Date: 2021-10-21 12:33:29
Message-ID: f38d2213-2645-25d5-7ea0-e4d3c4cd733a@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-support

Hi Dave,

/> I've never needed to do that with plain Docker or Kubernetes. I've
never used Docker Compose though. /

Have you ever tried to create a volume to //var/lib/pgadmin/storage/
folder using newer image versions and you were able to access it via
host in the nautilus? Using plain Docker.

If you have, how could I do that?

I did not have this kind of issue with older versions of pgadmin4 Docker
image (e.g. /dpage/pgadmin4:4.15/), this issue has started with recent
images that I need to change folder permission to 5050:5050 (e.g.
/dpage/pgadmin4:5.4/).

Thank you.

Best regards,
Rodrigo

On 21/10/2021 08:36, Dave Page wrote:
>
>
> On Thu, Oct 21, 2021 at 12:27 PM Rodrigo Mariano
> <rodmariano13(at)gmail(dot)com <mailto:rodmariano13(at)gmail(dot)com>> wrote:
>
> Hi Aditya,
>
> According to the documentation, I need to change user and group of
> my host folder to /5050:5050/ through /chown/.
>
> If my default user and group is /rodrigo:rodrigo/, how could my
> default user access a folder that belongs to another one (i.e.
> /5050:5050/)?
>
> The pgAdmin processes in the container run under uid 5050, gid 5050.
>
>
> As far as I know, I cannot access a folder that belongs to other
> user normally.
>
> Maybe should I add my default user (i.e. /rodrigo/) to pgadmin
> group (i.e. /5050/)?
>
> I've never needed to do that with plain Docker or Kubernetes. I've
> never used Docker Compose though.
>
> If I should, I believe this information could be written on the
> documentation.
>
> Thank you.
>
> Best regards,
> Rodrigo
>
> On 21/10/2021 02:06, Aditya Toshniwal wrote:
>> Hi Rodrigo,
>>
>> pgAdmin just needs a readable and writable directory. pgAdmin
>> cannot change any permission on its own. It might be some
>> other ownership issue on your system then.
>>
>> On Wed, Oct 20, 2021 at 11:29 PM Rodrigo Mariano
>> <rodmariano13(at)gmail(dot)com <mailto:rodmariano13(at)gmail(dot)com>> wrote:
>>
>> Hi Aditya,
>>
>> I did both.
>>
>> First, I changed the folder permissions to 5050:5050 and the
>> Docker container worked, but I was not able to get into the
>> folder; the folder is locked and I cannot access its
>> subfolders, even through terminal. For example:
>>
>> After that, I tried using default permissions, however that
>> error message appeared.
>>
>> Thank you.
>>
>> Best regards,
>> Rodrigo
>>
>> On 20/10/2021 10:08, Aditya Toshniwal wrote:
>>> Hi Rodrigo,
>>>
>>> Did you run sudo chown -R 5050:5050 ./volumes/pgadmin4 and
>>> sudo chown -R 5050:5050 ./volumes/pgadmin4_storage As per -
>>> https://www.pgadmin.org/docs/pgadmin4/6.0/container_deployment.html#mapped-files-and-directories
>>> <https://www.pgadmin.org/docs/pgadmin4/6.0/container_deployment.html#mapped-files-and-directories>
>>> ?
>>>
>>>
>>> On Wed, Oct 20, 2021 at 6:14 PM Rodrigo Mariano
>>> <rodmariano13(at)gmail(dot)com <mailto:rodmariano13(at)gmail(dot)com>> wrote:
>>>
>>> Hi Aditya,
>>>
>>> I tried to create the volume to sub directory as well
>>> (i.e. //var/lib/pgadmin/storage/postgres_localhost.com
>>> <http://postgres_localhost.com>/), but the same error
>>> message appears.
>>>
>>> I send below the traceback.
>>>
>>> Thank you for your help.
>>>
>>> Best regards,
>>> Rodrigo
>>>
>>> -
>>>
>>> Traceback (most recent call last):
>>>   File
>>> "/venv/lib/python3.8/site-packages/gunicorn/arbiter.py",
>>> line 589, in spawn_worker
>>>     worker.init_process()
>>>   File
>>> "/venv/lib/python3.8/site-packages/gunicorn/workers/gthread.py",
>>> line 92, in init_process
>>>     super().init_process()
>>>   File
>>> "/venv/lib/python3.8/site-packages/gunicorn/workers/base.py",
>>> line 134, in init_process
>>>     self.load_wsgi()
>>>   File
>>> "/venv/lib/python3.8/site-packages/gunicorn/workers/base.py",
>>> line 146, in load_wsgi
>>>     self.wsgi = self.app.wsgi()
>>>   File
>>> "/venv/lib/python3.8/site-packages/gunicorn/app/base.py",
>>> line 67, in wsgi
>>>     self.callable = self.load()
>>>   File
>>> "/venv/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py",
>>> line 58, in load
>>>     return self.load_wsgiapp()
>>>   File
>>> "/venv/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py",
>>> line 48, in load_wsgiapp
>>>     return util.import_app(self.app_uri)
>>>   File
>>> "/venv/lib/python3.8/site-packages/gunicorn/util.py",
>>> line 359, in import_app
>>>     mod = importlib.import_module(module)
>>>   File "/usr/lib/python3.8/importlib/__init__.py", line
>>> 127, in import_module
>>>     return _bootstrap._gcd_import(name[level:], package,
>>> level)
>>>   File "<frozen importlib._bootstrap>", line 1014, in
>>> _gcd_import
>>>   File "<frozen importlib._bootstrap>", line 991, in
>>> _find_and_load
>>>   File "<frozen importlib._bootstrap>", line 975, in
>>> _find_and_load_unlocked
>>>   File "<frozen importlib._bootstrap>", line 671, in
>>> _load_unlocked
>>>   File "<frozen importlib._bootstrap_external>", line
>>> 848, in exec_module
>>>   File "<frozen importlib._bootstrap>", line 219, in
>>> _call_with_frames_removed
>>>   File "/pgadmin4/run_pgadmin.py", line 4, in <module>
>>>     from pgAdmin4 import app
>>>   File "/pgadmin4/pgAdmin4.py", line 98, in <module>
>>>     app = create_app()
>>>   File "/pgadmin4/pgadmin/__init__.py", line 441, in
>>> create_app
>>>     paths.init_app(app)
>>>   File "/pgadmin4/pgadmin/utils/paths.py", line 103, in
>>> init_app
>>>     raise InternalServerError(
>>> werkzeug.exceptions.InternalServerError: 500 Internal
>>> Server Error: The user does not have permission to read
>>> and write to the specified storage directory.
>>>
>>> On 20/10/2021 09:08, Aditya Toshniwal wrote:
>>>> Hi Rodrigo,
>>>>
>>>> /var/lib/pgadmin/storage is the base directory. A sub
>>>> directory for each user will be created for storing
>>>> user files.
>>>>
>>>> On Wed, Oct 20, 2021 at 5:10 PM Rodrigo Mariano
>>>> <rodmariano13(at)gmail(dot)com
>>>> <mailto:rodmariano13(at)gmail(dot)com>> wrote:
>>>>
>>>> Hi,
>>>>
>>>> I'm having a trouble related to pgadmin 4 Docker
>>>> image <https://hub.docker.com/r/dpage/pgadmin4>
>>>> <https://hub.docker.com/r/dpage/pgadmin4>.
>>>>
>>>> I would like to create a volume to
>>>> //var/lib/pgadmin/storage/ folder, in order to
>>>> access backup files created by pgadmin 4 interface,
>>>> however error messages about permission denied are
>>>> raised, for example:
>>>>
>>>> werkzeug.exceptions.InternalServerError: 500
>>>> Internal Server Error: The user does not have
>>>> permission to read and write to the specified
>>>> storage directory.
>>>>
>>>> Is there a way to create this volume?
>>>>
>>>> I had to use a command to change user and group of
>>>> my volume to 5050:5050 (i.e. /sudo chown -R
>>>> 5050:5050 pgadmin4/), but now I'm not able to get
>>>> into the folder anymore, even when I try creating a
>>>> volume to //var/lib/pgadmin/storage/ folder directly.
>>>>
>>>> I send below my Docker compose file with default
>>>> values.
>>>>
>>>> Thank you in advance.
>>>>
>>>> Best regards,
>>>> Rodrigo
>>>>
>>>> -
>>>>
>>>> /docker-compose.yml/
>>>>
>>>> version: '3'
>>>>
>>>> services:
>>>>   cdsr_postgis:
>>>>     container_name: cdsr_postgis
>>>>     image: kartoza/postgis:11.0-2.5
>>>>     restart: on-failure
>>>>     environment:
>>>>       - POSTGRES_USER=postgres
>>>>       - POSTGRES_PASS=postgres
>>>>       - ALLOW_IP_RANGE=0.0.0.0/0 <http://0.0.0.0/0>
>>>>       -
>>>> POSTGRES_MULTIPLE_EXTENSIONS=postgis,hstore,postgis_topology,pgrouting
>>>>     volumes:
>>>>       - ./volumes/postgresql:/var/lib/postgresql
>>>>     networks:
>>>>       - cdsr
>>>>     ports:
>>>>       - 6000:5432
>>>>
>>>>   cdsr_pgadmin4:
>>>>     container_name: cdsr_pgadmin4
>>>>     image: dpage/pgadmin4:5.4
>>>>     restart: on-failure
>>>>     environment:
>>>>       -
>>>> PGADMIN_DEFAULT_EMAIL=postgres(at)localhost(dot)com
>>>> <mailto:PGADMIN_DEFAULT_EMAIL=postgres(at)localhost(dot)com>
>>>>       - PGADMIN_DEFAULT_PASSWORD=postgres
>>>>     volumes:
>>>>       # to fix permission bugs:
>>>>       # sudo chown -R 5050:5050 pgadmin4
>>>>       - ./volumes/pgadmin4:/var/lib/pgadmin
>>>>       -
>>>> ./volumes/pgadmin4_storage:/var/lib/pgadmin/storage
>>>>     networks:
>>>>       - cdsr
>>>>     depends_on:
>>>>       - cdsr_postgis
>>>>     ports:
>>>>       - 6001:80
>>>>
>>>> networks:
>>>>   cdsr:
>>>>     driver: bridge
>>>>
>>>>
>>>>
>>>> --
>>>> Thanks,
>>>> Aditya Toshniwal
>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>> <http://edbpostgres.com>
>>>> "Don't Complain about Heat, Plant a TREE"
>>>
>>>
>>>
>>> --
>>> Thanks,
>>> Aditya Toshniwal
>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>> <http://edbpostgres.com>
>>> "Don't Complain about Heat, Plant a TREE"
>>
>>
>>
>> --
>> Thanks,
>> Aditya Toshniwal
>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>> <http://edbpostgres.com>
>> "Don't Complain about Heat, Plant a TREE"
>
>
>
> --
> Dave Page
> Blog: https://pgsnake.blogspot.com <https://pgsnake.blogspot.com>
> Twitter: @pgsnake
>
> EDB: https://www.enterprisedb.com <https://www.enterprisedb.com>
>

In response to

Responses

Browse pgadmin-support by date

  From Date Subject
Next Message Akshay Joshi 2021-10-21 12:44:58 pgAdmin 4 v6.1 Released
Previous Message Dave Page 2021-10-21 11:36:37 Re: Problem related to volume creation to pgadmin 4 Docker image