Skip to content

cmlpolymath/container-store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📦 Container Store 📦

Container Store Logo

Centralized Dev Container Configurations



Overview

Container Store is your central hub for professional-grade development container configurations, designed to streamline your workflow and elevate your development environment. Leveraging VS Code Dev Containers, Docker, and WSL2, it provides reproducible and isolated environments for projects like SmartDev and Wisp.

Key Objectives:

  • Streamlined Workflow: Achieve consistent, version-controlled dev container configurations.
  • 📂 Multi-Project Management: Centrally store and manage configurations for diverse projects (e.g., SmartDev, Wisp).
  • 🛠️ Modern Tooling: Utilize Alpine Linux, Zsh, Oh My Zsh, Powerlevel10k, Starship, and uv for a cutting-edge development experience.
  • 🤝 VS Code and Git Integration: Seamlessly open, rebuild, and maintain containers with VS Code and Git.

📂 Project Structure

container-store/
├── 📂 bit_net/            # Microsoft LLM in a 9GB image. We're inferencing on low-tier CPUs now.
│   └── 📄 Dockerfile
├── 📂 smart_dev/          # A Nvidia GPU configured data science container
│   └── 📂 .devcontainer/
│       ├── 📄 docker-compose.yml
│       ├── 📄 Dockerfile
│       ├── 📄 devcontainer.json
│       └── 📄 requirements.txt
└── 📂 wisp/               # Compact, powerful, and visually stunning Alpine-based image with zsh configs
    └── 📂 .devcontainer/
        ├── 📄 Dockerfile
        ├── 📄 devcontainer.json
        └── 📄 requirements.txt
  • .devcontainer Folder: Encapsulates the Dockerfile and devcontainer.json files that define the container's development environment.
  • requirements.txt: Specifies Python package dependencies for installation within the container's virtual environment.

✨ Features

  • Alpine Linux Base Image: 🏔️ Minimal container footprint with essential development tools.
  • Custom Zsh Setup:
    • Oh My Zsh with the Powerlevel10k theme. 🎨
    • Plugins: zsh-syntax-highlighting, zsh-autosuggestions, and more for enhanced shell functionality. 🚀
  • Starship Prompt: 🌟 Fast, customizable, and minimal prompt for an informative and efficient terminal experience.
  • uv Virtual Environment Management: 🐍 Automatic virtual environment creation and dependency installation from requirements.txt.
  • Nerd Fonts: 🤓 Installs the Source Code Pro Nerd Font (SauceCodePro Nerd Font) for enhanced glyph rendering in the terminal.

⚙️ Prerequisites

  • OS: Windows 10/11 with WSL2 enabled. 🪟
  • Tooling: docker-cli (configured for WSL2). 🐳
  • IDE: Visual Studio Code with the following extensions:
    • Remote - WSL 🔌
    • Dev Containers 📦
    • Docker 🐋
  • Version Control: Git (for repository cloning and management). 🌳

Getting Started

  1. Clone the Repository:

    git clone [https://github.com/cmlpolymath/container-store.git](https://github.com/cmlpolymath/container-store.git)
    cd container-store/wisp
  2. Open in VS Code:

    • Open VS Code.
    • Use the Command Palette: "Reopen in Container"
    • This action will:
      • Build the container from the .devcontainer configuration.
      • Create a uv virtual environment and install dependencies from requirements.txt (if present).
      • Launch Zsh with the Powerlevel10k theme and Starship prompt.
  3. Container Usage:

    • Your development environment is now ready for use. 🚀
    • Code, dependencies, and terminal settings are all pre-configured within the container.

🔨 Building and Rebuilding

PowerShell (or WSL):

wsl bash -c "sudo service docker start && devcontainer up --workspace-folder /home/<your-user>/container_store/wisp && code --remote dev-container+$(wslpath -w /home/<your-user>/container_store/wisp)"

💡 Tip: Replace <your-user> with your actual username. Use the --build-no-cache flag to force a complete rebuild, bypassing any cached layers.


🤝 Contributing

Contributions are welcome!

  1. 🍴 Fork the repository.
  2. 🌿 Create a branch.
  3. Commit changes with clear and descriptive messages.
  4. 🚀 Open a Pull Request.

📜 License

MIT License


📞 Contact

For issues or suggestions, please use the GitHub Issue Tracker.


Thank you for visiting. Please come again! 👋

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published