Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save bugra455/ad303a53f20dce1a79211df62ea4e7b5 to your computer and use it in GitHub Desktop.
Save bugra455/ad303a53f20dce1a79211df62ea4e7b5 to your computer and use it in GitHub Desktop.
Docker PGadmin4: [Errno 13] Permission denied: '/var/lib/pgadmin/sessions' Solution

Hello.

Since you are here, you are having trouble accessing your PGAdmin container that you created with docker and one of the reasons is this writing error.

Lets read the error first, if you came here by luck and dont know what causes you to cant access your pgadmin container lets try writing docker logs <container with pgadmins id> to our terminal first.

[2025-04-06 11:17:23 +0000] [502] [INFO] Worker exiting (pid: 502) 
HINT Create the directory /var/lib/pgadmin/sessions, ensure it is writeable by 'pgadmin', and try again, or, create a config_local.py file and override the SESSION DB PATH setting per https://www.pgadmin.org/docs/pgadmin4/9.2/config.py.html 
[Errno 13] Permission denied: '/var/lib/pgadmin/sessions' 
[2025-04-06 11:17:23 +0000] [1] [ERROR] Worker (pid:502) exited with code 1 [ 2825-04-06 11:17:23 +0000] [1] [ERROR] Worker (pid:582) exited with code 1. 
[2025-04-06 11:17:23 +0000] [503] [ΙΝNFO] Booting worker with pid: 503 

this log means pgadmin cant write data to data directory of PgAdmin. In my case, i have a folder called ~/docker-data and it stores my docker stuff that i just didnt want to install locally on my system to manage versions, easy uninstallation/reinstallation and stuff. Inside of that i have a directory called pgadmin-data that stores my pgadmin stuff.

To solve that, we just need to give our container users required reading and writing access by using chown

Firstly we have to open our containers shell by docker exec -it <container with pgadmins id> bash and exec id Mine looks like this, yours will too:

image

Note the UID and GID values and

sudo chown -R <UID that you should have noted>:<GID that you should have noted> <path of your storage folder.>

Reboot your containers and is should be solved!

@bugra455
Copy link
Author

bugra455 commented Apr 6, 2025

For reference, this is my compose file that i used to create my postgres DB and pgadmin

services:
  postgres-db:
    image: postgres
    restart: always
    shm_size: 128mb
    environment:
      POSTGRES_USER: dockeruser
      POSTGRES_PASSWORD: dockeruser
      POSTGRES_DB: dockerdb
    networks:
      - docker-pgsetup
    ports:
      - "5432:5432"
    volumes:
      - ~/docker-data/postgres-data:/var/lib/postgresql/data

  pgadmin:
    image: dpage/pgadmin4
    container_name: pgadmin4_container
    restart: always
    ports:
      - "5433:80"
    environment:
      PGADMIN_DEFAULT_EMAIL: [email protected]
      PGADMIN_DEFAULT_PASSWORD: dockeruser
    depends_on:
      - postgres-db
    networks:
      - docker-pgsetup
    volumes:
      - ~/docker-data/pgadmin-data:/var/lib/pgadmin

volumes:
  postgres-data:
  pgadmin-data:

networks:
  docker-pgsetup:
    driver: bridge

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment