DEV Community

tdk-cli
tdk-cli

Posted on

TDK CLI Core vs Hand-Written Docker Compose: What Actually Changes

Docker Compose describes a set of containers in one file. For many projects that is enough, and it is the right tool to learn first. TDK CLI Core takes a different route: each service describes itself in a service.json, and the tool generates the local runtime files, including the Dockerfile, routing, and Tilt configuration. This article compares the two honestly.

What stays the same

Both run containers on your machine. Both can connect services by name on a shared network. Both are used for local development, and both are not deployment tools.

What changes

Where the description lives. Compose keeps the whole system in one file. TDK keeps each service's description with that service, and generates the rest.

Who writes the infrastructure. With Compose, you write the Dockerfiles, the networking, and the proxy rules. With TDK, the runtime files are generated and marked as generated.

How changes are checked. TDK compares generated files with saved snapshots before startup. A hand edit blocks the start and names the file. Compose does not track hand edits to the files it depends on.

How the stack is watched. TDK runs Tilt, which watches the source and updates containers as you edit. Compose can rebuild on demand, but live updates are a separate setup.

Trade-offs

Compose is simpler to read and has a much larger body of shared knowledge. Engineers can look up almost any problem. Its single file also stays explicit: nothing is generated behind your back.

TDK is more opinionated. It works best when your services fit the resource types it supports, and it generates files you should not edit. If your system needs a custom networking setup that the generator does not cover, you may end up fighting it.

Choosing

Use Compose when your project is small, your team knows it well, or you need full control of every container detail. Consider TDK CLI Core when you run several services with similar shapes and want the wiring generated, checked, and started with one command.

Either way, keep local tooling separate from production. TDK does not generate cluster manifests, and production deployment stays with Helm, Argo CD, or Kustomize.

Top comments (0)