Initial commit

This commit is contained in:
Fergal Moran
2017-03-09 22:57:10 +00:00
commit 660d9c8dab
3 changed files with 56 additions and 0 deletions

21
Dockerfile Normal file
View File

@@ -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"]

8
README.md Normal file
View File

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

27
run_pgadmin4.sh Normal file
View File

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