Skip to content

Dev Container Workflow #13

@KCui0327

Description

@KCui0327

🚀 Description

Mist will need to support two different types of user workflows:

  1. The user receives a dev. container for them to develop with and have the freedom to download packages they need
  2. The user submits a job to Mist to do either:
    • ML Model Training
    • Hosting a Flask Server (For GenAI Genesis)

For this issue, you will ONLY focus on the first workflow.


✅ Objectives

🧑‍💻 Development Container Workflow

  • Provide a Docker Container where:
    • Container is provisioned per user session
    • Runs as an unprivileged user
    • No sudo access or ability to modify system directories
    • Only user-space installs allowed:
      • Python packages via pip install --user
      • Conda packages (if Conda is included)
      • Binaries in home directory or workspace
    • Preinstalled Stack:
      • Python 3.10+
      • Libraries: torch, transformers, datasets, pandas, scikit-learn, etc.
      • Tools: git, curl, vim, wget, jupyter
    • Persistent Storage
      • Per-User Volume:
        • Each user is provisioned a dedicated persistent volume
        • Data survives container shutdowns or restarts
        • Isolation:
          • Only accessible by the owning user
          • No cross-user access permitted

🎯 Acceptance Criteria

  • Environment Behaviour
    • Persistent volume
    • Preinstalled packages and tools available
    • User can install packages to their user space
    • All system-level modification attempts (e.g., apt install) are blocked
  • Testing
    • Unit tests for container provisioning logic
    • Integration test for user package install (e.g., pip install --user matplotlib)
    • Integration test for persistent file write/read
    • Security test: confirm restricted access to system directories

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions