File size: 1,733 Bytes
66030fa 511bc62 c0616b4 6992e29 66030fa da5c857 6992e29 da5c857 6992e29 da5c857 f1bd50d da5c857 66030fa 0d321d4 da5c857 7182945 da5c857 7182945 55bf45f cb53bb9 66030fa ea37cb1 da5c857 6992e29 55bf45f c0616b4 66030fa 6992e29 66030fa 3b6b10b 66030fa da5c857 6992e29 66030fa da5c857 ea37cb1 |
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 |
FROM jupyter/scipy-notebook
# Set the working directory to /app
WORKDIR /app
# Copy the requirements file
COPY requirements.txt .
COPY public /app/public
# Switch to root user to install system packages and set permissions
USER root
# Install the dependencies
RUN apt-get update && apt-get install -y wget nginx && pip install -r requirements.txt
# Copy the configuration files and entrypoint script
COPY jupyter_config.py /etc/jupyter/jupyter_config.py
COPY nginx.conf /etc/nginx/nginx.conf
COPY entrypoint.sh /app/entrypoint.sh
# Set the entrypoint script as executable
RUN chmod +x /app/entrypoint.sh
RUN mkdir -p /var/lib/nginx/body /var/lib/nginx/fastcgi \
/var/lib/nginx/proxy /var/lib/nginx/scgi \
/var/lib/nginx/uwsgi /var/log/nginx \
&& chown -R ${NB_UID}:${NB_GID} /var/lib/nginx /var/log/nginx /var/run /run \
&& chmod 755 /var/lib/nginx /var/run /run
# Ensure Nginx has permissions to write to log directory and PID file
RUN touch /var/log/nginx/error.log /var/log/nginx/access.log /run/nginx.pid \
&& chown -R ${NB_UID}:${NB_GID} /var/log/nginx /run/nginx.pid
# Set the permissions for the app directory to the existing user
RUN chown -R ${NB_UID}:${NB_GID} /app
# Switch back to the original user
USER ${NB_UID}
# Mount the secret
RUN --mount=type=secret,id=JUPYTER_TOKEN,mode=0444,required=true
# Set the working directory for the user
WORKDIR /home/${NB_USER}/app
# Expose the port 8888 for JupyterLab
EXPOSE 8888
# Expose the port 7860 for Nginx
EXPOSE 7860
# Set the environment variables
ENV JUPYTERLAB_PORT=8888
ENV JUPYTERLAB_TOKEN=your_secret_token
ENV NGINX_PORT=7860
# Run the entrypoint script when the container starts
ENTRYPOINT ["/app/entrypoint.sh"] |