File size: 1,367 Bytes
c0616b4 511bc62 c0616b4 6992e29 c0616b4 da5c857 c0616b4 6992e29 da5c857 6992e29 da5c857 f1bd50d da5c857 c0616b4 0d321d4 da5c857 7182945 da5c857 7182945 c0616b4 ea37cb1 da5c857 6992e29 c0616b4 da5c857 6992e29 3b6b10b c0616b4 da5c857 6992e29 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 |
FROM jupyter/scipy-notebook:latest
# Set the working directory to /app
WORKDIR /app
# Copy the requirements file and install Python dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy static files
COPY public /app/public
# Switch to root user to install system packages and set permissions
USER root
# Install necessary dependencies
RUN apt-get update && apt-get install -y \
nginx \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# 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
# Create necessary directories and set permissions
RUN mkdir -p /data /var/log/nginx && \
chown -R ${NB_UID}:${NB_GID} /app /data /var/log/nginx /etc/nginx/nginx.conf && \
chmod 755 /data
# Switch back to the original user
USER ${NB_UID}
# Set the working directory for the user
WORKDIR /data
# Mount the secret and expose it as an environment variable
RUN --mount=type=secret,id=JUPYTER_TOKEN,mode=0444,required=true \
export JUPYTER_TOKEN=$(cat /run/secrets/JUPYTER_TOKEN)
# Expose the port for Nginx
EXPOSE 7860
# Run the entrypoint script when the container starts
ENTRYPOINT ["/app/entrypoint.sh"] |