Hacker News new | ask | show | jobs
by paxys 1552 days ago
This almost always falls apart when you are developing two projects with conflicting stacks simultaneously. Can I run two JVMs with different versions and configurations? Multiple MySQL servers? Multiple web servers? And if I make a change to any one of them, how do I roll it out to my entire dev team? What would take endless tinkering becomes trivial with one Docker script.
2 comments

Answers to your questions:

Yes, Yes, Yes, often teams use shells script, gradle or maven.

The same config you'd put in the docker yaml or whatever would go into the maven or whatever config except that the devs would be familiar with the existing tools and wouldn't spend countless hours mucking about with docker files.

Also unless you're using docker on x86 AND linux, likely things will not work or at least you'll run into mem, or perf or other compat issues.

After working with Java/Python for years, I had forgotten about the hell people go through with other langs deploying on diverse OSes/arches.

Well my argument is the exact opposite – if I know Docker why would I spend countless hours individually mucking about with maven and jvm and whatever dozens of custom components the service uses that I might not even know of? And repeat that for every other stack.

If I need to test my code locally against a service some other team develops, the only exchange needs to be "here's a docker compose file you can run with one command", not a wiki with shell scripts and other dozens of instructions which were likely outdated 3 years ago.

I understand your point. The article is about Java dev from a Java dev's perspective so your assertion "if I know Docker" is often not true for this class.

As opposed to my assertion: "a Java dev knows one of {gradle,maven,shell} is almost always true.

Yes, you can.

I have been coding since 1986.

There was a time before Docker.