Skip to content

skevetter/picolayer

Repository files navigation

Picolayer

A utility tool that keeps container layers small by cleaning installation leftovers such as apt lists, caches, and temporary files. Picolayer can install packages using package managers, install executables from GitHub releases, run devcontainer-features, and run programming languages with pkgx.

This project is inspired by nanolayer.

Devcontainer Feature Integration

Refer to these examples to integrate the Picolayer feature with existing devcontainer feature builds:

Feature Description
pkgx Installs from GitHub repository with checksum verification
Lazygit Installs from a GitHub repository
Neovim Installs from a GitHub repository with asset tag filtering
Biome Installs a NPM package
UV Installs multiple binaries from a GitHub repository

Commands

Command Description
apt-get Install Debian/Ubuntu packages
apk Install Alpine packages
brew Install packages using Homebrew
npm Install npm packages (installs Node.js if needed)
pipx Install Python packages in isolated environments (installs pipx if needed)
gh-release Install binaries from GitHub releases
pkgx Execute commands with pkgx

Installation

From source

cargo install --git https://github.com/skevetter/picolayer

From binary

Download the latest release from the releases page.

Or download as a one-liner

curl -L https://github.com/skevetter/picolayer/releases/latest/download/picolayer-x86_64-unknown-linux-gnu.tar.gz | tar -xz && chmod +x picolayer && \
./picolayer \
    devcontainer-feature \
    "ghcr.io/devcontainers-extra/features/bash-command:1" \
    --option command="curl https://pkgx.sh | sh"

Usage

Package Manager Command
Apt-get picolayer apt-get cowsay
Apt picolayer apt cowsay
Aptitude picolayer aptitude cowsay
Apk picolayer apk cowsay
Homebrew picolayer brew cowsay
Npm picolayer npm cowsay
Pipx picolayer pipx cowsay
GitHub releases picolayer gh-release --owner pkgxdev --repo pkgx --version latest
Pkgx picolayer pkgx --tool python -- -c "print('Hello World')"

About

Install packages with minimal container layer sizes

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages