From fa401226cbc4bd8a0b25ba968244a85aaf8a9cc2 Mon Sep 17 00:00:00 2001 From: Emmanuel Bruno <emmanuel.bruno@univ-tln.fr> Date: Tue, 18 Apr 2023 16:07:33 +0200 Subject: [PATCH] moves to postgresql package and entrypoint. --- Artefacts/apt_packages | 4 +++- Dockerfile | 19 +++++++++---------- entrypoint.sh | 15 +++++++++++++++ initDB.sh | 5 ----- run.sh | 11 +++++------ 5 files changed, 32 insertions(+), 22 deletions(-) create mode 100755 entrypoint.sh delete mode 100755 initDB.sh diff --git a/Artefacts/apt_packages b/Artefacts/apt_packages index 4351315..5ec23d1 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 6e4fabe..8634023 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 0000000..ab0841f --- /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 08ffbf6..0000000 --- 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 58704a4..039f285 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 -- GitLab