🚀 Depot CI is here — a new CI engine, fast by design
Blog
Migrating my workflows from GitHub Actions to Depot CI banner
Andrea Anderson
Andrea Anderson
9 April 2026
Migrating my workflows from GitHub Actions to Depot CI
Depot CI runs GitHub Actions workflows on Depot infrastructure, and migrating is pretty seamless. Here's a walkthrough of moving an app's CI over, from installing the CLI to digging into logs.
The end of push-wait-guess CI banner
Andrew "Watts" Watkins
Andrew "Watts" Watkins
27 March 2026
The end of push-wait-guess CI
The old CI debugging loop goes: edit YAML, commit, push, wait, squint at logs, repeat. Depot CI replaces that with a local loop you can actually control, from running workflows against uncommitted changes to SSHing into the runner mid-job.
Optimize your Dockerfile for 5x faster builds banner
Andrea Anderson
Andrea Anderson
22 January 2026
Optimize your Dockerfile for 5x faster builds
Slow Docker builds are annoying and disrupt your flow. This guide shows practical techniques to optimize your Dockerfile, from simple instruction reordering to advanced caching strategies, with real measurements from a production-like Node.js application.
Graceful Shutdown in Go banner
Chris Goller
Chris Goller
16 December 2025
Graceful Shutdown in Go
When graceful shutdown is an afterthought, it's one of the most common sources of production bugs. When servers restart, work gets dropped, state gets lost, and you end up chasing weird behavior at startup. Here's how to use contexts and WaitGroups to implement clean shutdowns that don't lose work or corrupt state.
The ultimate guide to Docker build cache banner
Andrea Anderson
Andrea Anderson
5 December 2025
The ultimate guide to Docker build cache
Ever wondered when Docker reuses cached layers and when it rebuilds from scratch? This guide breaks down the mechanics of how caching works, how cache invalidation cascades through your builds, and how different instructions affect the cache.
Troubleshooting GitHub Actions with self-hosted runners banner
Pedro Guerra
Pedro Guerra
14 November 2025
Troubleshooting GitHub Actions with self-hosted runners
Not every self-hosted runner failure is actually a runner problem. GitHub Actions and third-party actions often expect environmental features that GitHub-hosted runners provide by default. When your setup differs, you may get cryptic errors that point to the wrong cause. Here are three real support cases where the symptoms looked like runner issues but weren't.
From Go code to container image with Depot API banner
Chris Goller
Chris Goller
26 August 2025
From Go code to container image with Depot API
Build a specialized container building system using Depot's low-level Go SDK to transform tar archives into container images. This advanced walkthrough demonstrates the three-step build flow: registering builds, acquiring ephemeral BuildKit machines, and configuring custom build solutions.
Guide to faster Rust builds in CI banner
Billy Batista
Billy Batista
1 August 2025
Guide to faster Rust builds in CI
Building Rust projects in CI can be painfully slow, but with the right optimizations, you can dramatically reduce build times. We tested various techniques on the Zed codebase and achieved a 35% speedup over our already-optimized baseline, cutting build times from 27 minutes to just 16 minutes.
A practical guide to debugging GitHub Actions banner
Iris Scholten
Iris Scholten
23 July 2025
A practical guide to debugging GitHub Actions
GitHub Actions are great when they just work, but a single failing job can bring everything to a halt. Sometimes the error is obvious, other times it feels like the runner is failing for reasons that have nothing to do with your code. This guide walks through practical ways to debug those failures so you can get builds running smoothly again.
How to use cache mounts to speed up Docker builds banner
Luke Morris
Luke Morris
8 July 2025
How to use cache mounts to speed up Docker builds
Cache mounts let you preserve partial build state between Docker builds, making incremental rebuilds faster when layer cache misses. Here's how to use them effectively, avoid common pitfalls, and make them work reliably in CI environments.
How to reduce CI/CD costs: Complete optimization checklist banner
John Stocks
John Stocks
25 June 2025
How to reduce CI/CD costs: Complete optimization checklist
Most engineering teams overspend on CI/CD by 50% or more. Here's how to cut your build costs in half without slowing down deployments.
How to calculate your real GitHub Actions usage in minutes banner
John Stocks
John Stocks
3 June 2025
How to calculate your real GitHub Actions usage in minutes
GitHub Actions usage reporting doesn't tell the full story. If you're running different types of runners (like 4-core, 8-core, or more), those minutes aren't equal, and your total usage number doesn't reflect it.
Faster Claude Code agents in GitHub Actions banner
Kyle Galbraith
Kyle Galbraith
23 May 2025
Faster Claude Code agents in GitHub Actions
A crash course into the new ability to run Claude Code agents in GitHub Actions and how to make them faster with Depot runners.
From Go Code to Container Image with Depot API banner
Chris Goller
Chris Goller
21 May 2025
From Go Code to Container Image with Depot API
The Depot API lets you build and push containers straight from your Go code. No Docker CLI. No scripts. Just fast, native builds triggered by a few lines of Go.
Why you should avoid COPY --link in your Dockerfile banner
Kyle Galbraith
Kyle Galbraith
31 March 2025
Why you should avoid COPY --link in your Dockerfile
Often touted as a method for decreasing Docker image build times, COPY --link is actually more likely to have the opposite effect. Here's why.
How to reduce your Docker image size banner
Kyle Galbraith
Kyle Galbraith
17 March 2025
How to reduce your Docker image size
Leverage .dockerignore, smaller base images, cache mounts, and multi-stage builds to drastically reduce the size of your Docker images.
How to reuse builds across integration test workflows banner
Iris Scholten
Iris Scholten
13 March 2025
How to reuse builds across integration test workflows
Learn how to build and store your integration test builds once, and then pull them for multiple workflows as needed.
Fast Rust builds with sccache and GitHub Actions banner
Luke Morris
Luke Morris
6 March 2025
Fast Rust builds with sccache and GitHub Actions
Compiling Rust in GitHub Actions can be slow in unpredictable ways. Let's examine the underlying causes and explore sccache as an effective solution.
Go 1.24 remote caching explained banner
Chris Goller
Chris Goller
3 March 2025
Go 1.24 remote caching explained
Go 1.24 introduces external caching, allowing the compiler to offload cache management to an external program. This fine-grained approach improves build efficiency. Here’s how it works under the hood.
Faster Bazel builds with remote cache banner
Kyle Galbraith
Kyle Galbraith
3 February 2025
Faster Bazel builds with remote cache
Any project that reaches a certain size will eventually be slow to build. With Bazel, you can accelerate your builds by using a remote cache to compile dependencies once and share them across your environments, like CI pipelines or your local development environment.
Remote build caching: The secret to lightning-fast builds banner
Kyle Galbraith
Kyle Galbraith
29 January 2025
Remote build caching: The secret to lightning-fast builds
The next evolution of build cache is remote. Learn how the adoption of remote build caching can significantly reduce build times and improve developer experience and productivity.
Faster Gradle builds with remote cache banner
Kyle Galbraith
Kyle Galbraith
28 January 2025
Faster Gradle builds with remote cache
As JVM projects grow, build times slow. Gradle's incremental builds with remote caching speeds up development in all environments, CI and local alike.
What is a tar file? banner
Kyle Tryon
Kyle Tryon
21 November 2024
What is a tar file?
What is a "tar" (tape archive) file? A deep dive into the history and inner workings of the tar file format to create better optimized archives.
Docker buildx explained banner
Kyle Galbraith
Kyle Galbraith
24 September 2024
Docker buildx explained
In this article, we explain what Docker buildx is, how it's different from docker build, the extra functionality it offers, and when you should use it.
Comparing GitHub Actions and Depot runners for 2x faster builds banner
Kyle Tryon
Kyle Tryon
20 September 2024
Comparing GitHub Actions and Depot runners for 2x faster builds
We love GitHub Actions, but the default runners are slow and expensive. We benchmarked the performance of GitHub Actions runners against Depot runners and found that Depot runners are 2x faster and half the cost.
Tidy up with docker system prune banner
Kyle Galbraith
Kyle Galbraith
16 September 2024
Tidy up with docker system prune
Drowning in Docker clutter? Learn how to use docker system prune to reclaim valuable disk space and remove all those old artifacts that are hogging your machine.
Our favorite Docker tools banner
Kyle Galbraith
Kyle Galbraith
19 August 2024
Our favorite Docker tools
Go beyond the Docker CLI with some of the best tools in the container ecosystem. We share our favorite Docker tools that we use every day.
Deploy to Fly using a Depot builder banner
Kyle Tryon
Kyle Tryon
6 August 2024
Deploy to Fly using a Depot builder
Using Fly.io's new Depot builder, we'll walk you through how to deploy a TypeScript service globally with speed.
The complete guide to getting started with building Docker images banner
Kyle Galbraith
Kyle Galbraith
1 August 2024
The complete guide to getting started with building Docker images
Dive into the world of Docker images, Dockerfiles, the docker build command, and much more. We'll cover the basics of Docker and how to get started with building Docker images.
Faster GitHub Actions with Depot banner
Kyle Galbraith
Kyle Galbraith
29 July 2024
Faster GitHub Actions with Depot
GitHub Actions has several pain points like slow CPUs, slow networks, flaky caching, and odd billing practices. We built Depot GitHub Actions runners to solve these problems and make your builds faster, more reliable, and more affordable.
Docker multi-stage builds explained banner
Kyle Galbraith
Kyle Galbraith
25 July 2024
Docker multi-stage builds explained
Docker multi-stage builds enable parallelization and reduce image size. This article shows examples of multi-stage Dockerfiles with in-depth details.
What are Docker layers anyway? banner
Kyle Tryon
Kyle Tryon
18 July 2024
What are Docker layers anyway?
To learn what a Docker layer really is, we'll dissect a Docker image and take a look inside. Deep dive into the layers of a Docker image and understand how they work.
How to use Docker layer caching in GitHub Actions banner
Kyle Galbraith
Kyle Galbraith
5 July 2024
How to use Docker layer caching in GitHub Actions
To build a Docker image quickly, you should make use of Docker's layer cache. Here we show how to use the layer cache in GitHub Actions.
How to speed up your Docker builds banner
Kyle Galbraith
Kyle Galbraith
25 June 2024
How to speed up your Docker builds
Speeding up a Docker build requires optimizing the Dockerfile, maximizing the use of the cache, and taking advantage of multiple architectures.
The best CI provider for fast Docker builds banner
Kyle Galbraith
Kyle Galbraith
20 June 2024
The best CI provider for fast Docker builds
A comparison of the best CI providers for fast Docker builds, and an introduction to Depot, which gives speed improvements for your CI Docker builds.
How to clear Docker cache and free up space on your system banner
Kyle Galbraith
Kyle Galbraith
14 June 2024
How to clear Docker cache and free up space on your system
A breakdown of different Docker artifacts and build cache items that take up disk space and how to prune them individually or clear them all locally and in CI.
How to use Depot to build your containers faster for Fly.io banner
Kyle Galbraith
Kyle Galbraith
8 May 2024
How to use Depot to build your containers faster for Fly.io
Use Depot to build your Docker images and push them directly to a Fly registry for your app for even faster deployments.
How to leverage GitHub Actions matrix strategy banner
Kyle Galbraith
Kyle Galbraith
30 April 2024
How to leverage GitHub Actions matrix strategy
Using a matrix strategy in GitHub Actions can help you parallelize your GitHub Actions jobs by definining a matrix configuration to run different variations of a job in parallel based on the matrix values.
How to debug your Docker build context with Depot banner
Kyle Galbraith
Kyle Galbraith
25 April 2024
How to debug your Docker build context with Depot
Inside of Depot build insights you can now see what is in your Docker build context on every build. Knowing what is in your context can help you discover unexpected files your including in your build and final image.
Best practice Dockerfile for speedy Rust builds banner
Kyle Galbraith
Kyle Galbraith
19 April 2024
Best practice Dockerfile for speedy Rust builds
Rust builds in Docker tend to be slow. This article shows how to drastically speed them up using Docker layer caching and more advanced techniques like sccache.
Building and Caching Docker Images in Bitbucket Pipelines banner
Kyle Galbraith
Kyle Galbraith
12 April 2024
Building and Caching Docker Images in Bitbucket Pipelines
Bitbucket Pipelines can build Docker images, but not quickly. This post shows how to overcome the limitations of building Docker images in Bitbucket Pipelines.
Running GitHub Actions jobs in a container built with Depot banner
Kyle Galbraith
Kyle Galbraith
6 April 2024
Running GitHub Actions jobs in a container built with Depot
Dive into how to build a customer container image with Depot and run a GitHub Actions job in it in the same workflow. Combine the power of accelerated Docker image builds, ephemeral registry, and Depot runners to optimize your workflows.
Buildx bake deep dive: Bake all your images with one command banner
Kyle Galbraith
Kyle Galbraith
19 February 2024
Buildx bake deep dive: Bake all your images with one command
Building multiple Docker images sequentially wastes time and duplicates work. `docker buildx bake` lets you define all your builds in one file and run them in parallel, with BuildKit automatically deduplicating shared dependencies.
Build Docker images faster using build cache banner
Kyle Galbraith
Kyle Galbraith
8 January 2024
Build Docker images faster using build cache
Knowing how to optimize your Docker image builds to leverage the build cache as often as possible is critical to making your builds fast. We'll show you how the layer cache works and how to use the cache efficiently, so you can get the most out of your builds.
Faster Docker image builds in AWS CodeBuild banner
Kyle Galbraith
Kyle Galbraith
1 December 2023
Faster Docker image builds in AWS CodeBuild
A deep dive into building Docker images in AWS CodeBuild and how you can build a Docker in CodeBuild with the Lambda compute type via Depot.
Building Docker Images in GitLab CI with Depot banner
Kyle Galbraith
Kyle Galbraith
28 November 2023
Building Docker Images in GitLab CI with Depot
Building Docker images in GitLab CI comes with tradeoffs between security, complexity, and performance.
How to use Depot to build Docker images in your monorepo banner
Kyle Galbraith
Kyle Galbraith
17 November 2023
How to use Depot to build Docker images in your monorepo
A detailed guide with suggestions on how to leverage Depot in your monorepo workflows so that you get effective caching and fast builds.
How to optimize Docker image builds for Depot banner
Kyle Galbraith
Kyle Galbraith
6 November 2023
How to optimize Docker image builds for Depot
Optimizing for building Docker images in the cloud can help reduce image and build context size so that your builds can leverage the full power of Depot builders.
How to build multi-platform Docker images in GitHub Actions banner
Kyle Galbraith
Kyle Galbraith
27 October 2023
How to build multi-platform Docker images in GitHub Actions
Building multi-platform, also known as multi-architecture, Docker images in GitHub Actions is becoming a necessity. See how to build them in GitHub Actions.
Faster Docker builds for Arm without emulation banner
Kyle Galbraith
Kyle Galbraith
5 October 2023
Faster Docker builds for Arm without emulation
Building Docker Arm images today usually means using emulation. But, it's slow and inefficient. See how to build multi-architecture images with zero emulation.
Top 10 common Dockerfile linting issues banner
Kyle Galbraith
Kyle Galbraith
15 September 2023
Top 10 common Dockerfile linting issues
We've added the ability to lint Dockerfiles on demand in Depot. This post covers the top 10 most common Dockerfile linting issues we've seen flowing through Depot.
Run Depot builds on forks of open-source projects with GitHub Actions banner
Kyle Galbraith
Kyle Galbraith
19 July 2023
Run Depot builds on forks of open-source projects with GitHub Actions
Use ephemeral Depot builders to build and test Docker images on pull requests from forks of your open-source repositories with our new authentication mechanism for public forks.
How to build an image without the Docker cache banner
Kyle Galbraith
Kyle Galbraith
28 June 2023
How to build an image without the Docker cache
Using the Docker build cache speeds up builds by reusing layers from previous builds. But sometimes you want to build an image without the cache. Here's how.
Building Docker Images in CircleCI with Depot banner
Kyle Galbraith
Kyle Galbraith
9 June 2023
Building Docker Images in CircleCI with Depot
See how you can accelerate your Docker image builds in CircleCI with Depot. Saving you time and credits with faster builds for native Intel & Arm images.
The fundamentals of building a Docker image banner
Kyle Galbraith
Kyle Galbraith
30 May 2023
The fundamentals of building a Docker image
There are four fundamentals to building a Docker image quickly with docker build. From the moment we create a Dockerfile, we should be thinking about the fundamentals of building a Docker image as fast as possible.
Build all of your Docker images concurrently from a file with bake banner
Kyle Galbraith
Kyle Galbraith
30 January 2023
Build all of your Docker images concurrently from a file with bake
With CLI version 1.5.0, buildx bake comes to Depot via the depot bake command. Build multiple Docker images concurrently from an HCL, JSON, or Docker Compose file.
How to use BuildKit cache mounts in CI providers banner
Kyle Galbraith
Kyle Galbraith
15 December 2022
How to use BuildKit cache mounts in CI providers
BuildKit cache mounts provide a more fine-grained cache that allows you to leverage pre-computed work even when the Docker layer cache invalidates.
Faster Docker image builds in Cloud Build with layer caching banner
Kyle Galbraith
Kyle Galbraith
18 November 2022
Faster Docker image builds in Cloud Build with layer caching
The easiest way to get faster Docker image builds inside of Google Cloud Build is to make use of the layer cache as frequently as possible. But options available today in Cloud Build can often negate the advantages of layer caching.
How to reduce the size of a Docker image using dive banner
Kyle Galbraith
Kyle Galbraith
22 July 2022
How to reduce the size of a Docker image using dive
Reducing the overall image size is key to building and launching Docker images as quickly as possible. The smaller the image size, the less network bandwidth we have to consume to build and launch it.
Fast Dockerfiles: theory and practice banner
Jacob Gillespie
Jacob Gillespie
7 June 2022
Fast Dockerfiles: theory and practice
Writing a Dockerfile that builds quickly involves understanding the Docker layer cache and working with it to maximize the number of cache hits between builds.
How to build Arm and multi-architecture containers today banner
Kyle Galbraith
Kyle Galbraith
26 May 2022
How to build Arm and multi-architecture containers today
Building Arm and multi-architecture containers today is challenging. In this post, we explore the current options and how Depot addresses each challenge.
Your builds have never been this quick.
Get started