Back to notes

published 2025-10-30

Reasons to containerize the development workflow

l-you avatarl-you

As of 2025 containerization has become the industry standard for modern software development and deployment.

The following claims about development containerization will be simple and straightforward.

Personal feedback

  • It eliminates “works on my machine” drift by running code in a controlled, reproducible environment.
  • I use the same stack as production and my teammates, without polluting my OS.
  • I can juggle multiple projects with conflicting versions cleanly.
  • docker compose up -d is faster than hand-installing and configuring databases, queues, and web servers.
  • Swapping laptops or OSs doesn’t matter. Pull the image then run it.

The problem of past approach it solves

  • Env drift: hidden local tweaks, auto-installed IDE plugins, or open ports that don’t exist in prod.
  • Dependency hell on host: clashing toolchains, package upgrades breaking other projects.
  • Onboarding friction: missing setup steps, stale docs, tribal knowledge.
  • Repro challenges: reproducing test/prod bugs on a messy host is unreliable.
  • Corporate restrictions: limited ability to install build tools on desktops.
  • Clean exits: containers stop. No lingering daemons hogging ports/CPU.
  • CI parity: the same image runs locally and in pipelines for consistent results.
  • Team standardization: share a compose file and everyone runs the same stack.

The thing it simplifies we did not think about

  • Living documentation: the Dockerfile is an executable spec of the environment.
  • Time travel: pinning images/locks makes rolling back toolchain changes trivial.
  • Parallel stacks: spin up multiple versions of services without fighting the host.
  • Security posture: less need for host-level installs and escalated privileges.

Drawbacks

  • Overhead: images can be large; builds and pulls take time and disk space.
  • Local UX: file I/O performance, networking quirks, and volume permissions can bite.
  • Debugging: extra layer (container + orchestrator) adds complexity for tooling and logs.

Things to consider

  • Maintenance: Dockerfiles, base images, and CVE patching still need care.
  • Secrets/config: must handle env vars, mounts, and credentials safely.
  • Not a silver bullet: you can still misconfigure ports, resources, or compose files.