-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
69 lines (55 loc) · 2.67 KB
/
Copy pathDockerfile
File metadata and controls
69 lines (55 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
ARG BASE=brunoe/jupyter-base:develop
FROM $BASE
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/*
# Postgresql python library
# SQL support for ipython and PlantUML
# pgadmin4 and gunicorn
RUN conda install --quiet --yes psycopg2 && \
conda clean -tipy && \
pip install pgspecial ipython-sql mocodo gunicorn https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v7.0/pip/pgadmin4-7.0-py3-none-any.whl && \
fix-permissions "${CONDA_DIR}" && \
fix-permissions "/home/${NB_USER}"
# Configure phppgadmin and its proxy
COPY phppgadmin.conf /etc/apache2/sites-enabled/phppgadmin.conf
COPY phppgadmin/jupyter_phppgadmin_config.py /tmp
RUN touch jupyter_config.py && \
cat /tmp/jupyter_phppgadmin_config.py >> /home/jovyan/.jupyter/jupyter_config.py
COPY phppgadmin/icons $HOME/.jupyter/icons
# RUN rm /etc/apache2/sites-available/000-default.conf
RUN sed -i -e '/export APACHE_RUN_USER=/s/=.*/=jovyan/' \
-e '/export APACHE_RUN_DIR=/s/=.*/=\/home\/jovyan\/var\/run\/apache2/' \
-e '/export APACHE_LOCK_DIR =/s/=.*/=\/home\/jovyan\/var\/lock\/apache2/' \
-e '/export APACHE_LOG_DIR=/s/=.*/=\/home\/jovyan\/var\/log\/apache2/' \
-e '/export APACHE_PID_FILE=/s/=.*/=\/home\/jovyan\/var\/run\/apache2\/apache2.pid/' \
/etc/apache2/envvars && \
mkdir -p /home/jovyan/var/run/apache2/ \
/home/jovyan/var/lock/apache2/ \
/home/jovyan/var/log/apache2/ && \
chown -R $NB_USER /home/jovyan/var && \
sed -i -e 's/80/9090/g' /etc/apache2/sites-available/000-default.conf
# Configuration of pgadmin4
COPY pgadmin4/config_local.py /opt/conda/lib/python3.10/site-packages/pgadmin4/config_local.py
ENV PGADMIN_SETUP_EMAIL=jovyan@nowhere.org
ENV PGADMIN_SETUP_PASSWORD=secret
RUN sed -i -e "/unix_socket_directories = /s/= .*/ = '\/home\/jovyan\/var\/run\/postgresql'/" \
$(echo /etc/postgresql/*/main/postgresql.conf)
# Adds pgadmin4 jupyterproxy
COPY pgadmin4/jupyter_pgadmin4_config.py /tmp
RUN touch jupyter_config.py && \
cat /tmp/jupyter_pgadmin4_config.py >> /home/jovyan/.jupyter/jupyter_config.py
# preconfigure localhost postgresql server for pgadmin4
COPY pgadmin4/pgadmin4-localhostpg.json /
# Initialisation of the default database in the userspace (~/work)
COPY before-notebook/* /usr/local/bin/before-notebook.d/
RUN mkdir /initdb.d
RUN wget https://www.postgresqltutorial.com/wp-content/uploads/2019/05/dvdrental.zip -O /tmp/dvdrental.zip && \
(cd /initdb.d && unzip /tmp/dvdrental.zip) && \
rm /tmp/dvdrental.zip
# Switch back to jovyan to avoid accidental container runs as root
USER $NB_UID