commit 660d9c8dab01691b5be308473c01aa066a0e2ede Author: Fergal Moran Date: Thu Mar 9 22:57:10 2017 +0000 Initial commit diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ba36494 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +FROM ubuntu +ENV DEBIAN_FRONTEND=noninteractive + +RUN \ + export DEBIAN_FRONTEND=noninteractive \ + && apt-get -qy update && apt-get -qy dist-upgrade \ + && apt-get -qy install --no-install-recommends python3 python3-pip libpq5 libpq-dev build-essential libpython3-all-dev git python-setuptools \ + && pip3 install --upgrade pip \ + && pip install setuptools \ + && git clone git://git.postgresql.org/git/pgadmin4.git \ + # && rm -rf pgadmin4/.git \ + && pip install -r pgadmin4/requirements.txt \ + && apt-get -qy purge libpq-dev build-essential libpython3-all-dev git \ + && apt-get -qy --purge autoremove && apt-get -qy clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ + && rm -rf /usr/share/doc /usr/share/doc-base /usr/share/man /usr/share/locale /usr/share/zoneinfo + +EXPOSE 5050 + +ADD run_pgadmin4.sh / +RUN chmod +x /run_pgadmin4.sh +ENTRYPOINT ["./run_pgadmin4.sh"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..ad32ef8 --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# Docker container for pgadmin4 + +Create a folder for settings and run the container + +``` +mkdir -p ~/pgadmin-data +docker run -it --rm -v ~/pgadmin-data:/pgadmin-data --net=host fergalmoran/pgadmin4:latest +``` \ No newline at end of file diff --git a/run_pgadmin4.sh b/run_pgadmin4.sh new file mode 100644 index 0000000..47429e1 --- /dev/null +++ b/run_pgadmin4.sh @@ -0,0 +1,27 @@ +#!/bin/bash +export USER_ID=${DATA_USER_ID:-1000} +export GROUP_ID=${DATA_GROUP_ID:-1000} + +#Link configuration volume +mkdir -p /pgadmin-data +ln -s /pgadmin-data /root/.pgadmin +chmod a+x /root + +#Create unprivileged user +groupadd -g $GROUP_ID -o pgadmin +useradd --shell /usr/sbin/nologin -u $USER_ID -o -c "" -g $GROUP_ID pgadmin --home /pgadmin-data +chown pgadmin:pgadmin /pgadmin-data + +#Create persistent config file on volume +if [ ! -f /pgadmin-data/config_local.py ]; then + cat /pgadmin4/web/config.py \ + | sed "s/DEFAULT_SERVER = 'localhost'/DEFAULT_SERVER = '0.0.0.0'/" \ + > /pgadmin-data/config_local.py + chown pgadmin:pgadmin /pgadmin-data/config_local.py +fi +ln -s /pgadmin-data/config_local.py /pgadmin4/web/config_local.py + + +#Run unprivileged +chroot --userspec pgadmin:pgadmin / python3 pgadmin4/web/pgAdmin4.py +