Elixir: Docker now charges open source orgs $300
twitter.com
twitter.com
First of all: yes, I agree, it is completely fine if Docker wants to charge for this. As it is completely fine for me to be frustrated with the unclear communication around this (there is a HN discussion on it [1]).
The biggest issue is: I actually won't be affected by this. I don't use images from Docker Hub, the community does. Any large open source community has likely asked, at some point, for Docker Images and they are the ones to be affected. And in a month (or not, the messaging has been unclear), they may find their deployments pipelines broken. Any company that depends on Docker Hub images should be triple checking their Dockerfiles right now because they may need to update them within a month.
Others have mentioned Docker for open source projects [2], but the terms are, honestly, very disappointing. If you have any prospect of making any money, regardless of the amount, then you are automatically rejected. And most open source projects take several years (if ever) to become profitable (for Elixir, that took about 6-7 years).
Again, they don't have to provide an open source grant, but I also don't have to pretend the grant will be useful to most. I can (thankfully) afford the yearly fee but I am drawing a line at paying for distributing the software I write for free (and another line on the extremely limited open source grant application).
Have a good one. :)
[1]: https://news.ycombinator.com/item?id=35154025 [2]: https://www.docker.com/community/open-source/application/
Let's be honest here.
Docker has been directly involved with creating a container runtime and has provided this for free with no strings attached for about 10 years. They've also hosted Docker images on the Docker Hub for free this whole time. Using Docker's runtime and official images are still free for everyone after this change.
Now they are removing some of the free bits for hosting repos for teams but at the same time they offer a form you can fill out to continue to get free hosting for open source projects https://www.docker.com/community/open-source/application/. Why didn't Jose fill out this form?
We've all benefited from Docker and in my opinion their pricing strategy is pretty reasonable around team licenses. I mean you could be a $500 million dollar company with 100 developers and end up paying about $10,000 for the year on Docker Desktop licenses, meanwhile your payroll on those devs will be like $20,000,000.
You're right, he's built a multi-employee consulting agency around Elixir which he has linked in his Twitter bio. He even explicitly calls out at using Docker to install Livebook on its official installation page.
So he's built a profitable business on top of Elixir and is now upset for having to pay $300 to continue using the tools that help him run his business? I don't get it. This is the cost of running a business. He could choose to self host the Docker bits but I'm guessing the costs would be higher than paying Docker's monthly fee. Alternatively he can spend the next XX years developing his own competitor to Docker and then pay out of pocket to host everyone's stuff for free indefinitely.
I completely agree that Docker doesn't own me anything. By the same token, I can express my frustration by them vaguely announcing that many Livebook and Elixir deployment pipelines may be broken _within a month_.
Also, it took several years of _free work_ for Elixir to become profitable (and even then, we invest most of the profits right back into the community). And I consider well within my rights to recognize that their open source grant wouldn't have helped me back then and I doubt it will help others now.
Overall, it is not about the cost. It is just that I would rather take my business elsewhere (paid or free).
Here is a quick exercise: imagine I announce the next Elixir versions will require at least $300/year to use. I bet everyone would be fine with it. The cost of running a business and all that, right?
That's not a fair analogy.
Docker is still free to use to build your own things today. You can run containers on your servers and pay $0. You can host images on your own registry and Docker makes $0 off that, you can still provide free value to the community by allowing the community to pull from your registry at no cost.
An accurate analogy would be more like Elixir officially hosting all open source Elixir apps for free for ~10 years and now 10 years later you want to start charging a relatively small amount of money to continue hosting things for the community. That doesn't seem unreasonable to me and that's what Docker is doing here.
Anyway, we can work with your example. Your example is missing the context that Docker images are not always used as an app, but also as a building block.
So let's change the exercise slightly: assume Dashbit owns Hex.pm and posting any package to Hex.pm now requires $300/year or packages will be removed within a month.
As an OSS maintainer, if you do not pay, you will break the deployment of all users of your package. So... would everyone still be fine with it? The cost of running a business and all that?
EDIT: Hex.pm supports custom registries which anyone can self-host. Including built-in tools to help you with that. You can apply this exercise to any open source community with a centralized-by-default package manager with custom registries (which, afaik, are most of them).
However it says nothing about individuals of the organization making money off consulting. So contributing to Apache and running an Apache consulting company is OK, Apache still qualifies but your consulting company doesn't.
Because of bait and switch tactics.
2. Because the open-source application form excludes the vast majority of open-source projects. E.g. Curl isn't eligible because the founder additionally offers paid support. I imagine Elixir won't be either as the founder profits from it by running an Elixir consultancy (https://dashbit.co/). Docker Inc itself is marketed as an open-source project, but clearly wouldn't be eligible either. There's no revenue limits, no flexibility, just 'no plan towards >$0 revenue ever'. This is not most people's definition of 'open source'.
3. Because although yes it is a lot of traffic, they're trying to charge the community orgs to host images, whilst simultaneously they already charging the end users to pull these images too! They tightened the rate limits in 2020 so that any serious download usage as a client already requires a paid account.
4. Because they've given only 30 days notice before they'll drop all the existing images, with no redirection or migration options at all - just "pay up or we delete everything".
5. Because this will break every existing reference to every deleted image everywhere, and there are _millions_ (because as above, they've encouraged everybody to treat Docker Hub as the core ecosystem registry), from blog posts/documentation/tutorials to CI jobs to deployment definitions, and this is going to be a massive bomb that hits the industry & huge numbers of developers (even their paying customers!) when it lands in 29 days.
If you're a substantial company with 100s of devs, sure, you should be paying for Docker. If you're a 3-person community project publishing open-source images to Docker Hub that these companies are using, making a tiddly income with commercial support, you should not (and in practice, you probably can't).
I can definitely understand how it could be frustrating for project maintainers.
Externalizing hosting costs to other parties is very attractive but if you are truly open source you can tell everybody to build the packages themselves from source and provide a script (or in this case a large Dockerfile) for that. No hosting of binary images necessary for small projects.
Especially since a lot of open source projects are not used by other OSS but by large organizations I don't see the need to burden others with the costs for these businesses. Spinning this into "Docker hates Open Source" is absolutely missing the point.
Linux distributions figured out decades ago that universities are willing to help out with decentralized distribution of their binaries. Why shouldn't this work for other essential OSS as well?
Sure it has some problems but it's far preferable than to be slaved to single entity controlling repo
We also need to set it up so that the default is that your server using the project also helps host the stuff it needs to run.
I understand companies have to make money, but imagine if gmail started charging all of their users for email, while probably a billion of people has all their accounts tied to that address.