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
- Clone this repository (or navigate to the directory).
- Make the host script executable:
chmod +x devpod - 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 viaapk.install-rust.sh: Handles the Rust toolchain andcargo-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.