Building multiplatform Docker images in GitHub Actions often requires custom Docker daemon configurations, but these can introduce unexpected issues. This article explores a common pitfall with Docker contexts when using the containerd image store feature, particularly when running security scans with tools like Trivy. Learn how to extract and pass the correct Docker socket to ensure seamless integration and accurate vulnerability scans.
How to Configure Renovate to Update DevContainer Images
In this blog post, we explore the process of configuring Renovate to automatically update DevContainer images. Development containers offer lightweight, portable development environments, defined through a devcontainer.json
file. However, manually updating image references within this file can be tedious and error-prone.
We delve into how Renovate, an automated dependency update tool, can be tailored to handle DevContainer files efficiently. By leveraging Renovate’s custom managers and flexible template system, developers can seamlessly manage DevContainer image updates, enhancing workflow efficiency and reducing manual overhead.
Using DevContainer CLI to Build Multi-Platform Images with Embedded Features
Development Containers represent a paradigm shift in software development methodology, encapsulating comprehensive development environments within containerized configurations. This approach addresses the imperative need for consistency across diverse development environments by packaging essential tools, libraries, and configurations within self-contained units. Developers can utilize DevContainers to seamlessly share and replicate their development setups, fostering collaboration and enabling a hassle-free onboarding process for new team members. This enhances efficiency, reduces setup time, and mitigates compatibility issues, ultimately streamlining the development workflow.
The DevContainers CLI is a robust command-line interface integral to managing and manipulating development containers. However, nothing is bug-free, and this post details a troubleshooting experience with the DevContainers CLI to build development multi-architecture development container images with embedded features.
My First Experience with “Hey Code”
The January 2024 release of VSCode brought a noteworthy update – support for the “Hey Code” voice command. This new feature allows users to interact with Visual Studio Code using voice commands.
I decided to try it.
GitHub Codespaces and Automatic Port Forwarding
Codespace environments are backed with development containers (dev containers for short). They are supported by other tools, for example, Visual Studio Code.
And even though Microsoft maintains both Dev Containers extension for VSCode and GitHub Codespaces, they behave differently in some aspects.
This article shows one of the bugs, which is related to Automatic Port Forwarding.
How to Sign Tags in GitHub Codespaces
This article explains how to set up a codespace to allow for signing git tags.
How to Emulate a Request in WP CLI Shell
This post explains how to emulate a real request in a WP CLI shell so that all global variables are populated correctly — the same way as if you requested that URL in the browser.
How to Log Request Headers with Nginx and NJS
Sometimes, when bad bots attack your site, it is convenient to look at the request headers to see if there is a signature that allows you to block them all easily.
Even though nginx does not offer any built-in means for that, you can use NJS module to log the request headers.
How to Conditionally Disable Object Cache Drop-in
A site has one primary domain name and several secondary names. It also uses an object cache drop-in. Site administrators use only the primary domain for posting. All the administrative operations trigger cache updates only for the primary domain; the mirrors on the secondary domains show stale data. Site owners somehow needed to disable the object cache for all domains except the primary one.
This post shows a way to selectively disable the object cache drop-in.
Speeding up Docker Builds With eatmydata
Quite often, one of the most time-taking parts of the build process is the installation of dependencies. This process is traditionally slow because package managers choose stability over performance. And this perfectly makes sense: if something terrible happens, the system must remain in a usable state.
However, stability is not very important when building an image: if the build fails, the system discards the image, and you have to start over.
This post provides some tips on how to use eatmydata
to speed up some operations by the example of Debian-based images.