[HN Gopher] Show HN: Kappal - CLI to Run Docker Compose YML on K...
___________________________________________________________________
Show HN: Kappal - CLI to Run Docker Compose YML on Kubernetes for
Local Dev
Author : sandGorgon
Score : 39 points
Date : 2026-02-05 05:41 UTC (2 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| sandGorgon wrote:
| This is a personal project that im open-sourcing. Its one of
| those projects-that-should-exist-but-nobody-wants-to-kill-their-
| business.
|
| It takes ur standard docker compose file and runs it
| transparently in kubernetes (k3s actually). So ur devs don't have
| cognitive dissonance between testing ur stack locally on ur
| laptop and making it work on kubernetes in production.
|
| It is primarily meant as a dev tool on ur laptop, and as a
| replacement for docker compose.
| osigurdson wrote:
| I've just moved on from docker compose. Instead I have a K8s like
| yaml file and use podman kube play. The learning curve is pretty
| small in my opinion and at least it is a little closer to
| production.
| sandGorgon wrote:
| fair. however, i do genuinely find docker compose yml and dev-
| experience to be much more pleasant and intuitive.
|
| if you ever wanna try it again - use kappal. you will get a
| full k8s but with the UX of docker compose.
| rvz wrote:
| Looks promising and really interesting to see and it's a very
| good idea. But when I saw the test folder however, it is
| completely empty. [0]
|
| So is any of this tested?
|
| [0] https://github.com/sandys/kappal/tree/main/test
| sandGorgon wrote:
| the test folder is for a large real project that i test on (and
| actually use in real life myself). it has a deliberate
| gitignore. plenty of tests in
| https://github.com/sandys/kappal/tree/main/testdata and
| https://github.com/sandys/kappal/tree/main/scripts
| nkmnz wrote:
| Could I use this for running the same docker compose stack
| multiple times in parallel? I wrote a lot of bash glue code to
| make this happen (without kubernetes) for integration and
| acceptance testing on a single server. Managing envs and
| networking was a pain, but mostly, I struggle to keep it up to
| date with infrastructure changes in my platform.
| bewuethr wrote:
| Have you tried Tilt? https://tilt.dev/
| nkmnz wrote:
| No, I haven't. Can you elaborate how you think it could help
| me? Couldn't figure it out from reading the docs, tbh.
| mlnj wrote:
| I love Tilt.
|
| With a single Tilt file combined with a docker compose
| file, almost all of the infrastructure you need is
| configured on a local machine. It also supports running
| kubernetes (most of the docs are around this), but you do
| not necessarily need to it it.My goto when I have more then
| 2 docker containers/services I want to keep changing code
| for. Some teams I work with usually have 20 such containers
| for local dev.
|
| And yes, you can even nest Tilt files and even write normal
| python if you want to mix things up.
| sandGorgon wrote:
| yes. fixing this right now. you will have it in a day or two.
| nkmnz wrote:
| Would certainly try this out!
| philipallstar wrote:
| I'm not quite sure what level of testing this facilitates. If
| you're testing as close to production as possible, you probably
| want templated k8s config that scales down to a k8s in CI (e.g.
| Helm with variables applied that make it minimal). If you just
| want a local stack to test components and not the k8s config, why
| not just use docker compose itself?
| sandGorgon wrote:
| docker compose is beautiful because it uses a simple elegant
| compose yml file - this is now an open standard.
| https://www.compose-spec.io/
|
| the standard does not make it mandatory that underlying system
| should be docker compose (the reference server). it can be
| anything.
|
| IMHO - kappal is the first project that takes your compose yml
| file and transparently/drop-in runs it on kubernetes. there is
| nothing extra you need. It is useful for people who want to
| maintain their stack as close to production as possible
| (kubernetes).
|
| If that's not a big goal for you, then this is not very useful
| for you. But I'd argue ...why do you care if the compose yml is
| the only think you are using. you get all of kubernetes.
| wanderingbit wrote:
| @sandGorgon8, thank you.
|
| I was just telling some ex coworker friends that there was a
| great need for a compose frontend to more powerful infra
| backends, and this feels like the answer.
|
| Once I get working on it I'll try to add health check support.
| That is crucial for a lot of what we're working on.
| rirze wrote:
| So this uses k3s underneath. IMO any local kubernetes
| distribution is a big resource hog over plain docker. Anyone have
| ideas for something that is less resource intensive but easier to
| orchestrate than docker-compose?
| jimvdv wrote:
| Podman supports just the pod spec also used by kubernetes. How
| much orchestration do you need on a local machine?
| moondev wrote:
| Just like KIND runs containerd inside docker, you can also run
| dockerd inside containerd backed pods.
|
| Start a privileged pod with the dind image, copy or mount your
| compose.yaml inside and you should be able to docker compose up
| and down, all without mounting a socket (that won't exist anyway
| on containerd CRI nodes)
|
| To go even further, kubevirt runs on kind, launch a VM with your
| compose file passed in via cloud-init.
___________________________________________________________________
(page generated 2026-02-07 23:01 UTC)