Skip to content

Instantly share code, notes, and snippets.

@rwcitek
Last active March 27, 2024 23:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rwcitek/108e018b664d0636b20344852b91fbda to your computer and use it in GitHub Desktop.
Save rwcitek/108e018b664d0636b20344852b91fbda to your computer and use it in GitHub Desktop.
pg4admin in Docker

pg4admin in Docker

Adapted from https://www.pgadmin.org/download/pgadmin-4-python/

docker run -d --name build_pg4admin ubuntu:22.04 sleep inf

{ cat <<'eof'
apt-get update && apt-get install -y python3-pip

mkdir /var/lib/pgadmin
mkdir /var/log/pgadmin
pip install pgadmin4

sed -i  -re "/^DEFAULT_SERVER /s/^(.*)$/# \1\nDEFAULT_SERVER = '0.0.0.0'/" \
  /usr/local/lib/python3.10/dist-packages/pgadmin4/config.py

eof
} | docker container exec -i build_pg4admin /bin/bash

docker container commit build_pg4admin rwcitek/pg4admin

docker container run -d \
    -e PGADMIN_SETUP_EMAIL="pgadmin@example.com" \
    -e PGADMIN_SETUP_PASSWORD="pgadmin4" \
    --name pg4admin \
    -p 5050:5050 \
    rwcitek/pg4admin pgadmin4

docker container logs pg4admin

Another version ( 02 )

Modified from the pg4admin website.

https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html#examples

mkdir -p ./pg_config

docker run -p 8280:80 \
  --detach \
  --rm \
  --env 'PGADMIN_DEFAULT_EMAIL=user@domain.com' \
  --env 'PGADMIN_DEFAULT_PASSWORD=SuperSecret' \
  --name pg4admin \
  --volume $PWD/pg_config:/pg_config \
  dpage/pgadmin4 ; sleep 10 ; echo -e "\n\n\nhttp://localhost:8280\n\n\n"

docker exec -i -w /pg_config pg4admin /bin/sh <<'eof'
  mkdir -p /var/lib/pgadmin/storage/user_domain.com/
  cp foobar.json /var/lib/pgadmin/storage/user_domain.com/
  ls -la  /var/lib/pgadmin/storage/user_domain.com/
eof

until curl -L -s -I http://localhost:8280 ; do
  sleep 30
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment