# Jupyter Notebook MCP Client - GCP Cloud Run Deployment
FROM python:3.11-slim

WORKDIR /app

# Install dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Copy notebooks, shared utilities, and configuration
COPY mcp_utils.py .
COPY 00-setup-and-test.ipynb .
COPY 01-imaging.ipynb .
COPY 02-genomics-omics.ipynb .
COPY 03-clinical.ipynb .
COPY 04-workflow-ml.ipynb .
COPY 05-integration.ipynb .
COPY mcp_client.ipynb .
COPY .env.example .

# Create directories for Jupyter
RUN mkdir -p /root/.jupyter

# Configure Jupyter to allow remote access
RUN jupyter notebook --generate-config && \
    echo "c.ServerApp.ip = '0.0.0.0'" >> /root/.jupyter/jupyter_server_config.py && \
    echo "c.ServerApp.port = 8888" >> /root/.jupyter/jupyter_server_config.py && \
    echo "c.ServerApp.open_browser = False" >> /root/.jupyter/jupyter_server_config.py && \
    echo "c.ServerApp.allow_origin = '*'" >> /root/.jupyter/jupyter_server_config.py && \
    echo "c.ServerApp.token = ''" >> /root/.jupyter/jupyter_server_config.py && \
    echo "c.ServerApp.password = ''" >> /root/.jupyter/jupyter_server_config.py && \
    echo "c.ServerApp.allow_remote_access = True" >> /root/.jupyter/jupyter_server_config.py

EXPOSE 8888

# Run Jupyter Lab
CMD jupyter lab \
    --ip=0.0.0.0 \
    --port=${PORT:-8888} \
    --no-browser \
    --allow-root \
    --ServerApp.token='' \
    --ServerApp.password='' \
    --ServerApp.allow_origin='*'
