Ken Muse
Implementing Private VS Code Extensions for Dev Containers
Did you know that dev containers can have their own private Visual Studio Code extensions? By understanding some of the life cycle of the container, it’s possible to create and use extensions that are designed to support a specific dev container or Codespaces environment.

Read this article

Building Base Images for ARC

Building Base Images for ARC

If you’re using Actions Runner Controller, the provided base image may not be enough. In fact, it’s important to build your own to ensure that you have all the dependencies you need for your workflows.

Read this article

Building GitHub Runner Images With an Action Archive Cache
Minimizing network activity improves your build times, speeds up builds, and reduces costs. With ARC, you rely on multiple Actions steps in your workflow. What if you could avoid needing to download your most frequently used Actions? This post walks you through creating images with an Actions archive cache to eliminate those downloads.

Read this article

Building GitHub Actions Runner Images With A Tool Cache
If you’re going to build custom images for ARC or standalone VM runners, then you probably want to take some time to preload it with the tools that matter to your builds. If you want that process to work well for the GitHub-provided tools and actions/setup- Actions, then you’ll want to know how to prepopulate the runner’s tool cache.

Read this article

Windows Runners on Actions Runner Controller
One challenge with the GitHub’s Actions Runner Controller (ARC) is that it does not officially support Windows containers for the runners. With a little bit of work, though, it’s possible to make this configuration work on a hybrid Linux/Windows cluster.

Read this article

Improving Dev Container Feature Performance
The support for custom features in Dev Containers is a huge improvement to the process of customizing images quickly and easily. The convenience and simplicity can have a cost – performance. Trying to customize a container using a feature recently, I struggled with an incredibly long build time. This is how I improved the process.

Read this article

Dubious Ownership With Static Web Apps
Git’s safe directory configuration helps to protect users, but it can create challenges. This is especially true when using Hugo with Azure Static Web Sites. In that case, you’re dealing with an Action that bind-mounts the source code into a container. This requires some special handling.

Read this article

Implementing Docker Layer Caching in GitHub Actions
BuildKit provides native support for caching layers to improve build times. In this post, we’ll explore implementing gha, inline, and registry caches with GHCR and GitHub Actions.

Read this article

Implementing Docker-from-Docker for Non-Root Users
The third and final part of our exploration of Features and creating a simple feature. Now it’s time to dive deeper into Linux scripting to create an entrypoint for the non-root users.

Read this article

Improving Docker-From-Docker With Features
Sometimes scripting in containers just isn’t enough. We need modular, reusable components to create repeatable practices. We need to implement our first Feature.

Read this article