Introducing bottlerocket-extra-kit: Essential debugging tools for Bottlerocket
Bottlerocket is a Linux-based operating system optimized for hosting containers. We use Bottlerocket to run millions of containers each day. There are three key differences between Bottlerocket and common Linux distributions like Amazon Linux 2023:
- The rootfs is read-only.
- There is no package manager (e.g., yum) in Bottlerocket. Each package in Bottlerocket must be built into the OS variant.
- Enforced SELinux with Bottlerocket's own SELinux policies.
This makes it difficult for developers to debug and experiment. While we can sometimes get what we need by running tools in a container, some tools are better run outside of containers. Therefore, I created bottlerocket-extra-kit to provide useful tools for Bottlerocket. Currently, the kit includes the following packages:
- curl v8.12.1 - Command-line tool for transferring data with URLs
- vim v9.1.0 - Text editor for debugging and configuration
- sysstat v12.7.7 - System performance monitoring tools including: sar, sadf, iostat, mpstat, pidstat, tapestat, cifsiostat
- permissive-selinux - Sets SELinux mode to permissive, useful for debugging and development by bypassing SELinux denials (e.g., when running shell scripts)
- oomd v0.5.0 - Out-of-memory daemon for better memory management
See Use RPM packages to build your Bottlerocket AMIs with vim and curl today.
If you would like to see a new tool added, please create an issue.