# Use a base image with Python and JupyterLab already installed for convenience # This saves some steps and reduces image size by leveraging existing layers FROM jupyter/scipy-notebook:latest LABEL maintainer="Your Name " # Install Hugging Face Transformers and other common NLP/ML libraries # Use --no-cache-dir to prevent caching pip packages, reducing image size # Use a specific version for reproducibility, e.g., transformers==4.41.2 # Add other libraries you commonly use (e.g., datasets, evaluate, accelerate, sentencepiece, bitsandbytes) RUN pip install --no-cache-dir \ transformers \ datasets \ evaluate \ accelerate \ sentencepiece \ tokenizers \ diffusers \ scikit-learn \ pandas \ numpy \ matplotlib \ seaborn # Set the working directory inside the container WORKDIR /home/jovyan/work # You can expose the Jupyter Lab port (default is 8888) EXPOSE 8888 # Command to run Jupyter Lab # --ip=0.0.0.0 makes it accessible from outside the container # --no-browser prevents it from trying to open a browser inside the container # --allow-root is often used in Docker environments, but it's better to run as a non-root user if possible. # The `jupyter/scipy-notebook` image usually sets up a `jovyan` user, so `--allow-root` might not be necessary. # If you want to set a password/token: # --NotebookApp.token='your_secret_token' # --NotebookApp.password='your_hashed_password' (generate with `jupyter lab password`) CMD ["jupyter", "lab", "--ip=0.0.0.0", "--port=7860", "--no-browser"] # Optional: Copy your notebooks or data into the container if needed # COPY notebooks/ /home/jovyan/work/notebooks/ # COPY data/ /home/jovyan/work/data/