Ken Muse
Pre-Caching Docker Images on GitHub Runner Custom Images
If you run your jobs in containers or use service containers, you may spend a lot of time waiting. If those images are outside of your runner environment, then you may also be seeing rising egress charges from your cloud provider. Let’s change that. Learn how pre-caching Docker images in custom runner images can significantly reduce workflow execution time by eliminating redundant layer downloads.

Read this article

How I Avoided Shai-Hulud's Second Coming (Part 1)
When the Shai-Hulud v2 supply chain attack hit last week, I watched thousands of developers scramble to check their systems. Mine? I was able to mark it as safe. This was because I’d already layered in some straightforward security practices. If you’re wondering how to protect your own development environment from these kinds of attacks, I’ll walk you through the exact configurations and tools I use every day that kept me safe.

Read this article

Adding Help (man) to Buildroot Packages
In my earlier posts about creating custom Buildroot packages, we created a GitHub CLI package. Unfortunately, this package didn’t include the bundled man pages. In this post, you’ll learn how to add a configurable package for those man pages, including the necessary dependencies, configuration options, and installation steps to provide offline documentation.

Read this article

Creating a CodeQL Image for ARC With Python 2
Ready to finish crafting your CodeQL Actions runner image? Following up on my previous post, it’s time to add Python 2 support to the Docker image. You’ll add to the multistage build, learn how to preserve symbolic links, and learn a trick for unpacking archives without needing to copy the archive into the image first.

Read this article

Creating a CodeQL Image for ARC
Have you struggled with running CodeQL analysis on your own runners? You’re not alone. I figured that it was probably time to tackle this challenge to show you how to build the image, a few advanced Docker tricks, and a way to incorporate the scripts that the Actions team uses to build the official hosted runner VM images.

Read this article

Creating a Custom Buildroot Package For Binaries
Buildroot comes with a lot of great features, but what good is a custom image if you can’t add your own binaries? In this post, I’ll show you how to create a custom Buildroot package that uses a pre-compiled binary. I’ll walk you through the steps to create a package for the GitHub CLI, including how to configure it, define its dependencies, and how to install the package into your custom image.

Read this article

Speeding Up the Buildroot Toolchain
None of us like to wait. Time is precious, so we want to make the most of it. Unfortunately, if you’re just getting started with Buildroot it may seem like you’re spending a lot of time waiting for a toolchain to compile. In this post, we’ll look at ways to avoid that problem. Discover three easy ways to speed up your builds and spend more time creating, not waiting.

Read this article

Configuring Buildroot for Crafting Images
Ever wondered how to create a minimal Linux image using nothing but some menu selections? This guide walks you through using Buildroot’s menu system to craft your own custom OCI image, step by step using the graphical interface.

Read this article

Building OCI Images With Buildroot
Now that you’ve built an image by hand, you may be wondering if there are tools that might make this process easier. This week we’ll explore one of those – Buildroot – and look at how it can be used to automate building custom images.

Read this article

Building OCI Images Without Using Docker
Ever found yourself needing to create a container image, but Docker just isn’t an option? Sometimes the best solutions come from thinking outside the box … and outside the usual tools. In this post, I explore what’s in an image and the DIY path to building your own OCI images.

Read this article