diff --git a/Artefacts/apt_packages b/Artefacts/apt_packages index 4351315bc564e9628dd63c8cb7e37efeba4fb34e..5ec23d1d105dc7410901bd9831912c8eac1a9436 100644 --- a/Artefacts/apt_packages +++ b/Artefacts/apt_packages @@ -5,5 +5,7 @@ inkscape iputils-ping net-tools postgresql-client +postgresql procps -tree \ No newline at end of file +tree +rsync \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 6e4fabecbd4d24feabf1f09484a8eb95ec4edf47..8634023cfbdddd07c7e13cd7b3356f5ca155c068 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,27 +2,26 @@ FROM brunoe/jupyter-base:develop USER root +COPY Artefacts/apt_packages /tmp/apt_packages + RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ apt-get update && \ apt-get install -qq --yes --no-install-recommends \ $(cat /tmp/apt_packages) && \ - rm -rf /var/lib/apt/lists/* + chown jovyan /var/run/postgresql/ && \ + rm -rf /var/lib/apt/lists/* # Postgresql python library # SQL support for ipython and PlantUML RUN conda install --quiet --yes psycopg2 && \ - conda install -y -c conda-forge postgresql pgspecial && \ - conda clean -tipy && \ - pip install ipython-sql iplantuml mocodo && \ + conda clean -tipy && \ + pip install pgspecial ipython-sql iplantuml mocodo && \ fix-permissions "${CONDA_DIR}" && \ fix-permissions "/home/${NB_USER}" -ENV PGDATA=/home/jovyan/work/pgdata - -COPY initDB.sh /usr/local/bin/before-notebook.d/ - -#RUN ipython profile create && \ -# sed -i -e '/c.InteractiveShellApp.extensions = / s/= [^\]]*/= ["mocodo_magic","sql"]/' -e 's/# \(c.InteractiveShellApp.extensions\)/\1/' ~/.ipython/profile_default/ipython_config.py +COPY ./entrypoint.sh / +RUN chmod +x /entrypoint.sh # Switch back to jovyan to avoid accidental container runs as root USER $NB_UID +ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000000000000000000000000000000000000..ab0841fbb76eea34f0219ea8968c082ebeb1016f --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + +PGDATA=${PGDATA:-/home/jovyan/srv/postgresql} +DB_NAME=DEMO_DB +PG_PATH=$(echo /usr/lib/postgresql/*/bin/) + + +rm -rf $PGDATA/$DB_NAME +sudo -u jovyan $PG_PATH/initdb -D $PGDATA/$DB_NAME --auth-host=trust --encoding=UTF8 +chown -R jovyan:users /var/run/postgresql +sudo -u jovyan $PG_PATH/pg_ctl -D $PGDATA/$DB_NAME -l $PGDATA/../$DB_NAME.log start +sudo -u jovyan createdb --owner=jovyan jovyandb + +exec "$@" diff --git a/initDB.sh b/initDB.sh deleted file mode 100755 index 08ffbf68c99cedf351207946ede77a96710c667c..0000000000000000000000000000000000000000 --- a/initDB.sh +++ /dev/null @@ -1,5 +0,0 @@ -DB_NAME=DEMO_DB -rm -rf $PGDATA/$DB_NAME -sudo -u jovyan initdb -D $PGDATA/$DB_NAME -sudo -u jovyan pg_ctl -D $PGDATA/$DB_NAME -l $PGDATA/../$DB_NAME.log start -sudo -u jovyan createdb --owner=jovyan jovyandb \ No newline at end of file diff --git a/run.sh b/run.sh index 58704a4e46637d200a66b67a6141f2937cb80190..039f285ee840286eb14ed9b62bd40e7d8bc59a0a 100755 --- a/run.sh +++ b/run.sh @@ -1,8 +1,7 @@ #!/usr/bin/env bash -WORKDIR=$HOME/JUPYTER_WORK_DIR - -echo brunoe/${PWD##*/}:$(git rev-parse --abbrev-ref HEAD) +WORKDIR=$HOME/JUPYTER_WORK +IMAGE_REPO=brunoe docker run --rm -it \ --user root \ @@ -10,6 +9,6 @@ docker run --rm -it \ --volume $WORKDIR:/home/jovyan/work \ --publish 8888:8888 \ --env NB_UID=$UID \ - brunoe/${PWD##*/}:$(git rev-parse --abbrev-ref HEAD) $@ -# --env CHOWN_HOME_OPTS='-R' --env CHOWN_HOME=yes \ - \ No newline at end of file + ${IMAGE_REPO}/${PWD##*/}:$(git rev-parse --abbrev-ref HEAD) start-notebook.sh + +# start-notebook.sh --notebook-dir=/home/jovyan/notebooks/ \ No newline at end of file