devpod

A modular, Alpine-based Rust development environment running in a Podman container. It automatically integrates your custom dotfiles and pre-installs a suite of essential CLI tools.

Features

  • Seamless Integration: Mounts your current working directory into the container at the same path.

  • Customizable: Modular script architecture makes it easy to add or remove tools.

  • Dotfile Ready: Automatically clones and configures your dotfiles repository.

  • Full Rust Setup: Includes rustup, cargo-binstall, and common Rust utilities (cargo-watch, cargo-get).

  • Pre-installed Tooling: Includes ripgrep, zoxide, bat, fd, neovim, fish, and more.

Prerequisites

Quick Start

  1. Clone this repository (or navigate to the directory).
  2. Make the host script executable:
    chmod +x devpod
    
  3. Run the script:
    ./devpod
    

Note: The first run will take a while as it builds the container image and installs all dependencies.

How It Works

The setup is broken down into specialized scripts to keep the Containerfile clean:

  • install-apk.sh: Installs system-level packages via apk.
  • install-rust.sh: Handles the Rust toolchain and cargo-binstall.
  • install-cargo-tools.sh: Installs Rust-based CLI tools and your custom crates.
  • setup-rust-dev.sh: The main orchestrator that runs the sub-scripts and configures your dotfiles.
  • devpod: The entry point that builds the image (if needed) and drops you into the container.

Customization

To add new tools, simply edit the corresponding installation script:

  • To add an Alpine package, edit install-apk.sh.
  • To add a Cargo-based tool, edit install-cargo-tools.sh.

After making changes, simply run ./devpod again to rebuild the image.

Description
No description provided
Readme 30 KiB
Languages
Shell 78.7%
Dockerfile 21.3%