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 | |
# 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} | |
# 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"] | |