---
# Your Container Image Customizations Belong to You, Not Your Vendor

**URL:** https://crunchtools.com/your-container-image-customizations-belong-to-you-not-your-vendor/
Date: 2026-08-22
Author: fatherlinux
Post Type: post
Summary: I’ve been having a lot of conversations lately with people who are evaluating hardened container image vendors, and one particular feature keeps coming up that, frankly, surprises me. Customers are asking vendors like Docker and Chainguard to pre-inject customizations into container images on their behalf, things like CA certificates, security configurations, and other environment-specific tweaks.Continue Reading "Your Container Image Customizations Belong to You, Not Your Vendor" →
Categories: Articles
Tags: Best Practices, Container Images, Container Tools, DevOps, Security
Featured Image: https://crunchtools.com/wp-content/uploads/2026/08/container-image-customizations-thumbnail.png
---

I’ve been having a lot of conversations lately with people who are evaluating hardened container image vendors, and one particular feature keeps coming up that, frankly, surprises me. Customers are asking vendors like Docker and Chainguard to pre-inject customizations into container images on their behalf, things like CA certificates, security configurations, and other environment-specific tweaks. On the surface, I get the appeal, it sounds like one less thing to worry about. But the more I think about it, the more convinced I am that this is a fundamentally bad idea, and I think if you follow the thread all the way through, you’ll agree.

When I really dig into this, I think the problem is that you’re trading away a few different things that are pretty fundamental to how we should be building software, starting with the simple fact that you don’t really own the final product anymore, which has real consequences for your team’s independence, and even, ironically, for the security that you thought you were buying.

## Sovereignty: Your Builds Should Be Yours

When you ask a vendor to pre-inject a CA certificate into your container images before they reach you, you’ve handed over a piece of your infrastructure’s identity to a third party. That might sound dramatic, but think about what you’re actually doing. What you’re really doing is handing over control of your production artifacts, basically trusting that the vendor’s internal build process, their release schedule, and whatever custom API they’ve cooked up is going to work for you when you need it most, and I’m pretty skeptical that’s a good bet to make. You can’t fully audit what was injected, you can’t control when it happens, and you’ve introduced a dependency on someone else’s process for something that is fundamentally yours.

This isn’t a theoretical concern anymore, it’s becoming a legal one. Governments around the world are enacting legislation that demands software supply chain transparency and provenance. The [EU’s Cyber Resilience Act](https://openssf.org/public-policy/eu-cyber-resilience-act/), which starts enforcing vulnerability reporting requirements in September 2026 with full compliance by December 2027, mandates SBOMs, security-by-design, and the ability to trace every component in your software supply chain. Non-compliance can cost up to [15 million euros or 2.5% of global annual turnover](https://eur-lex.europa.eu/eli/reg/2024/2847/oj). The U.S. federal government is increasingly mandating sourcing and development controls for software used in government systems. China enforces one of the strictest data sovereignty regimes on the planet, requiring domestic storage and government approval for cross-border data transfers. India is developing its Digital India Act with similar provenance requirements. Brazil’s LGPD aligns with GDPR principles and is tightening enforcement on cross-border data flows in regulated industries.

And I don’t think this is just a regional quirk, because when you see governments in the EU, the US, China, India, and Brazil all starting to push for these kinds of software provenance rules, it’s pretty clear which way the wind is blowing for everybody. When a vendor pre-injects content into your images, you’ve broken that chain of custody. The image you pull is not the same as the image the vendor built from their base, and you may not have full visibility into what changed between those two states. In a world where regulators are asking you to account for every component, “a vendor did something to it before we got it” is not an answer that’s going to satisfy an auditor. According to the [Parallels Cloud Survey 2026](https://www.parallels.com/products/ras/all-resources/reports/cloud-survey-2026/report/), 94% of IT leaders cite vendor lock-in as a major concern, and for good reason. Once your customizations live inside a vendor’s proprietary workflow, extracting yourself becomes expensive and disruptive.

## Agency: The “Hit by a Bus” Problem

I’ve been thinking about the operational side of this, and one of the things that worries me is the classic “hit by a bus” problem, because I’ve seen it happen when the one person who understands a convoluted build process leaves. Your senior DevOps engineer, the one who designed the whole container build pipeline, takes another job. The new person comes in and starts trying to understand how the builds work. They open the Containerfile and see most of the configuration, but some things are missing. Where are the CA certificates injected? Oh, those are handled by Chainguard through their API. What about the security baseline configurations? Those are in Docker’s hardened images portal. The monitoring agent? That was added through a different vendor’s pre-injection service.

Now you’ve got customizations scattered across three different organizations, each with their own APIs, their own UIs, their own authentication, and their own documentation. The bus factor for understanding the full build just dropped to one, the person who originally designed the Rube Goldberg machine, and that person is gone.

This isn’t just a human problem either, it’s a systems problem, because the whole point of things like GitOps is to have a single, machine-readable source of truth that defines the build, and you can’t really do that if critical pieces of your configuration are hidden away behind some vendor’s proprietary portal that your automation tools can’t even see. When we keep all of this stuff in our own Containerfiles and our own CI/CD pipelines, the next person who comes along, whether they’re a new hire or an AI coding agent helping them onboard, can just read the file and understand what’s going on without a bunch of tribal knowledge.

[Rack2Cloud calls this the “infrastructure bus factor,”](https://www.rack2cloud.com/infrastructure-bus-factor/) pointing out that the real risk isn’t about documentation gaps, it’s about the “operational authority artifacts” that accumulate with specific engineers and aren’t captured by any formal system. I think giving the next person, whatever that looks like, the ability to actually modify the build without a week of archaeology across three different vendor portals is what real agency looks like for a technical team.

## Security: The Part That’s Actually Ironic

So these vendors are selling you security, but when you actually think through what happens when you outsource your customizations, the security picture gets worse, not better. When you build everything yourself, you trust your own build process, your own CI/CD, your own signing keys, and that’s it. When a vendor pre-injects content, you’re now trusting their build process in addition to your own, which means you’ve expanded your attack surface to include the vendor’s build systems, their supply chain, and their internal processes, which basically means you’ve gone from a single trust boundary that you control to at least two, and you have no visibility into the second one.

And here’s the practical problem: when something goes wrong at 2 AM and you’re trying to figure out why your containers are behaving unexpectedly, you have to determine which system introduced the change. Was it something in your Containerfile? Something the vendor injected? Something that changed in the vendor’s process since last week? You’re trying to debug across organizational boundaries, and that’s about the worst situation to be in when production is down.

[G2 user reviews](https://www.g2.com/products/chainguard/reviews?qs=pros-and-cons) for these types of services consistently cite “complex setup,” “difficult learning curve,” and “integration issues.” Those aren’t growing pains, they’re the natural consequence of splitting your build logic across multiple systems with different mental models, and they’re going to show up when you can least afford them.

## Keep It Simple, Keep It Yours

When you keep all of this in-house, your customizations are all right there in the Containerfile where they belong, which means you get a proper audit trail for every change and, maybe more importantly, any person on the team can actually read the thing and understand what the final image contains. Use a multi-stage build, generate or copy your CA certificates in the builder stage, copy them into your runtime image, build it in your own CI/CD, sign it with your own keys, and ship it to your own registry. When something breaks, you know where to look, and when someone leaves, the next person can pick it up without a bunch of vendor-specific detective work.

And honestly, even the multi-stage build approach I just described is more work than should be necessary for something as fundamental as CA certificates. There’s a [proposal for Podman](https://github.com/podman-container-tools/podman/issues/2317) that would take this even further, borrowing an idea from Flatpak where the container runtime automatically makes the host’s trusted CA certificates available to every container. You’d configure your certificates once on the host, and every container you run would just inherit them, no Containerfile modifications, no multi-stage builds, no vendor portals, nothing. It’s the kind of solution that makes you wonder why we’ve been doing it any other way, because the right answer to “where should my organization’s CA certificates come from” was always “the host that’s already configured to trust them.”

I’m pretty skeptical of any architecture that requires me to trust a vendor’s build process for changes that I could just as easily make myself, in my own pipeline, with standard tools that every container engineer already knows. The allure of “we’ll handle it for you” is real, I get that. But what you’re actually buying is complexity and fragmentation, and you’re giving up control over your own infrastructure in exchange. Your container image customizations belong to you. Keep them that way.

---

## Categories

- Articles

---

## Navigation

- [Home](https://crunchtools.com/)
- [Articles](https://crunchtools.com/category/articles/)
- [Events](https://crunchtools.com/category/events/)
- [News](https://crunchtools.com/category/news/)
- [Presentations](https://crunchtools.com/category/presentations/)
- [Software](https://crunchtools.com/software/)
- [Beaver Backup](https://crunchtools.com/software/beaver-backup/)
- [Check BGP Neighbors](https://crunchtools.com/software/check-bgp-neighbors-nagios/)
- [Chev](https://crunchtools.com/software/chev-check-vulnerabilities-script/)
- [Graph BGP Neighbors](https://crunchtools.com/software/grpah-bgp-neighbors/)
- [Graph MySQL Stats](https://crunchtools.com/software/graph-mysql-stats/)
- [Graph Sockets Pipes Files](https://crunchtools.com/software/graph-sockets-pipes-files/)
- [MCP Servers](https://crunchtools.com/software/mcp-servers/)
- [Petit](https://crunchtools.com/software/petit/)
- [Racecar](https://crunchtools.com/software/racecar/)
- [Shiva](https://crunchtools.com/software/shiva/)
- [About](https://crunchtools.com/about/)

## Tags

- Best Practices
- Container Images
- Container Tools
- DevOps
- Security