Talks - Sarah Kaiser: Eternal sunshine of the spotless development environment

Learn how dev containers streamline development environments using Docker - from speeding up collaboration to ensuring consistency across teams and simplifying workshop setup.

Key takeaways
  • Dev containers provide a standardized way to package development environments, including code, editor settings, and dependencies using Docker

  • Key benefits:

    • Speeds up collaboration and onboarding for open source projects
    • Ensures consistent development environments across team members
    • Provides fallback option when local setup fails
    • Makes bug reproduction easier by sharing exact environment
    • Reduces setup time for workshops and teaching
  • Multiple ways to use dev containers:

    • Locally with Docker installed
    • Through GitHub Codespaces (60 free hours/month)
    • Via cloud hosting services like DevPod
    • With IDEs like VS Code and PyCharm
  • Dev container configuration includes:

    • JSON file describing environment setup
    • Optional Docker file for custom configuration
    • Extension and editor settings
    • Features can be added without modifying base container
  • Additional capabilities:

    • Pre-builds available to speed up container startup
    • Can be used with VS Code Live Share for real-time collaboration
    • Supports GPU environments for ML workloads
    • Templates available for quick setup
    • Compatible with JupyterLab frontend for educational settings
  • The specification is open standard at containers.dev with growing ecosystem support