Trouver un titre qui explique toute l’histoire ici a été difficile, alors je vais essayer d’expliquer rapidement.
Hier, Docker a envoyé un e-mail à tous les utilisateurs de Docker Hub expliquant que toute personne ayant créé une “organisation” verra son compte supprimé, y compris toutes les images, s’il ne passe pas à un plan d’équipe payant. L’e-mail contenait un lien vers un PDF rédigé de manière concise (depuis, modifié en silence) auquel manquaient de nombreux détails importants, ce qui a provoqué une anxiété importante et un travail supplémentaire pour les responsables de l’open source.
À notre connaissance, cela n’affecte que les comptes d’organisation qui sont souvent utilisés par les communautés open source. Aucun changement n’a été apporté aux comptes personnels. Les comptes personnels gratuits ont un une période de conservation de 6 mois.
Pourquoi c’est un problème?
- Les plans d’équipe payants coûtent 420 USD par an (payés mensuellement)
- De nombreux projets open source, dont ceux que je maintiens, ont publié des images sur le Docker Hub pendant des années
- Le programme Open Source de Docker est hostile et déconnecté
Pourquoi devrais-tu m’écouter?
J’étais l’un des plus grands défenseurs de Docker, prenant la parole lors de leurs événements, contribuant à leurs projets et étant un membre fidèle de leur programme d’influence volontaire “Capitaines dockers“. J’ai écrit des dizaines, voire des centaines d’articles et d’exemples de code sur Docker en tant que technologie.
Je ne fais pas partie de ceux qui pensent que tous les logiciels et services devraient être gratuits. Je paie pour un compte personnel, non pas parce que je n’y publie plus d’images, mais parce que j’ai besoin d’extraire des images comme l’image de base pour Go ou Node.js dans le cadre de mon travail open source quotidien.
Lorsqu’un de nos clients OpenFaaS s’est plaint de payer pour Docker Desktop et a voulu passer plusieurs semaines à essayer de faire fonctionner Podman ou Rancher Desktop, j’ai dû me mordre la langue. Si vous utilisez un Mac ou une machine Windows, cela vaut la peine de payer à mon avis. Mais c’est une autre affaire.
Ayant connu Le nouveau CTO de Docker personnellement pendant très longtemps, j’ai été surpris de voir à quel point la communication était déconnectée.
Je ne suis pas le seul, vous pouvez lire les réactions sur Twitter (y compris de nombreux tweets de citation) et sur Actualités des pirates.
Passons en revue chaque point, puis explorons les options pour aller de l’avant avec des alternatives et des résolutions.
Les problèmes
-
Le coût d’un organisme qui héberge des images publiques est passé de 0 USD/an à 420 USD/an. De nombreux projets open source reçoivent peu ou pas de financement. Je comprendrais si Docker voulait réprimer les dépôts privés, car quel référentiel open source en a besoin ? Je comprendrais s’ils appliquaient cela à de nouvelles organisations.
-
De nombreux projets open source publient ainsi des images sur le Docker Hub depuis des années, phase ouverte dès 2016. N’importe qui pouvait cybersquatter l’image et publier du contenu malveillant. Le projet OpenFaaS publie maintenant ses images gratuites de l’édition communautaire sur le registre de conteneurs de GitHub, mais nous voyons toujours des milliers de tirages d’anciennes images du Docker Hub. Docker nous tient en otage ici, si nous ne payons pas, les systèmes tomberont en panne pour de nombreux utilisateurs gratuits.
-
Docker a une définition hostile et déconnectée de ce qui est autorisé pour son programme Open Source. Il exclut tout autre projet que les projets de temps libre ou les projets qui ont été entièrement donnés à une fondation open source.
“Ne pas avoir de voie vers la commercialisation. Votre organisation ne doit pas chercher à réaliser des bénéfices par le biais de services ou en facturant des niveaux supérieurs. Accepter des dons pour soutenir vos efforts est autorisé.”
Ce langage a été adouci depuis le premier e-mail, je suppose dans le but de réduire le contrecoup.
L’Open Source a un problème de financement, et Docker est né dans l’Open Source. Nous, la communauté, étions leurs faiseurs de rois, et maintenant qu’ils sont générer des revenus importantsils sont trop prêts à oublier leurs racines.
Les solutions de contournement
Dockers CTO a commenté de manière informelle sur Twitter qu’ils fermeront les comptes qui ne paient pas et ne permettront à personne d’autre de reprendre le nom. J’aimerais que cela soit publié par écrit, comme un engagement écrit.
Dans un monde idéal, ces comptes continueraient d’être attachés au compte d’utilisateur, de sorte que si pour une raison quelconque nous voulions payer pour eux, nous aurions accès pour les restaurer.
Le squattage et les effets des logiciels malveillants et des images empoisonnées sont ma principale préoccupation ici. Pour de nombreux projets que je maintiens, nous sommes déjà passés à la publication de packages open source sur le registre de conteneurs de GitHub. Pourquoi? Parce que Docker a appliqué limites de taux irréalistes cela signifie que tout utilisateur qui télécharge du contenu à partir de son Docker Hub nécessite un abonnement payant, qu’il soit personnel ou professionnel. J’en paie un pour pouvoir télécharger des images comme Prometheus, NATS, Go, Python et Node.
Peut-être êtes-vous éligible au programme « open source » ?
Si le projet que vous gérez appartient à une fondation comme la CNCF ou la Fondation Apache, vous pouvez simplement postuler au programme de Docker. Cependant, si vous êtes indépendant et que vous disposez d’une source de financement ou d’un moyen de pérennité financière, je paraphraserai le leadership de Docker : “Ça craint d’être vous”.
Prenons un exemple ? Le projet curl maintenu par Daniel Stenberg – quelque chose qui est installé sur chaque ordinateur Mac et Linux et certainement utilisé par Docker. Daniel a une société de conseil et fait du développement sur mesure. Un tel élément central de l’infrastructure Internet semble être disqualifié.
Il existe une exemption open source, mais elle est très stricte (absolument aucune “voie vers la commercialisation” – pas de services, pas de sponsors, pas d’addons payants et aucune voie pour le faire plus tard) et ils prennent apparemment plus d’un an pour traiter les demandes de toute façon.
—Tim Perry (@pimterry) 14 mars 2023
Cybersquat avant qu’un mauvais acteur puisse
Si vous êtes en mesure de supprimer complètement votre organisation, vous pouvez la recréer en tant que compte personnel gratuit. Cela devrait suffire à réserver le nom pour empêcher une prise de contrôle hostile. Docker a-t-il oublié Remember leftpad ?
Il est peu probable que de grands projets puissent simplement supprimer leur organisation et toutes ses images.
Si tel est le cas et que vous pouvez tolérer un certain temps d’arrêt, vous pouvez essayer ce qui suit :
- Créer un nouveau compte utilisateur personnel
- Mettre en miroir toutes les images et balises requises pour le nouveau compte d’utilisateur
- Supprimer l’organisation
- Renommer le compte d’utilisateur personnel au nom de l’organisation
Commencez à publier des images sur GitHub
Registre de conteneurs de GitHub offre un stockage gratuit pour les images publiques. Il ne nécessite pas que des comptes de service ou des jetons de longue durée soient stockés en tant que secrets dans CI, car il peut déjà créer un jeton de courte durée pour accéder à ghcr.io.
Vous voulez voir un exemple complet de cela?
Nous l’avons couvert sur le blog activé: Le moyen efficace de publier des conteneurs multi-arch à partir de GitHub Actions
Si vous avez déjà une image sur GitHub et que vous souhaitez commencer à publier de nouvelles balises à l’aide du GITHUB_TOKEN intégré de GitHub, vous devrez accéder au package et modifier ses autorisations d’écriture. Ajoutez le référentiel avec un accès “Ecriture”.
Assurez-vous de ne pas manquer la section “permissions” du fichier de workflow.
Comment configurer l’accès en écriture pour un référentiel existant avec GITHUB_TOKEN
Migrez vos images existantes
L’outil de grue du bureau open source de Google est capable de refléter des images de manière beaucoup plus efficace que d’exécuter docker pull, tag et push. L’approche pull, tag et push ne fonctionne pas non plus avec les images multi-arch.
Voici un exemple de commande pour répertorier les balises d’une image :
crane ls ghcr.io/openfaas/gateway | tail -n 5
0.26.1
c26ec5221e453071216f5e15c3409168446fd563
0.26.2
a128df471f406690b1021a32317340b29689c315
0.26.3
Le crane cp
ne nécessite pas de démon docker local et copie directement d’un registre à l’autre :
crane cp docker.io/openfaas/gateway:0.26.3 ghcr.io/openfaas/gateway:0.26.3
Sur Twitter, un employé à temps plein de la CNCF port projet a également expliqué qu’il a une capacité de « mise en miroir ».
Emballer
De nombreux projets open source se sont déjà éloignés du Docker Hub lorsqu’ils ont commencé à limiter le débit des images publiques open source telles que Go, Prometheus et NATS. Moi-même, je paie toujours Docker pour un compte, la seule raison pour laquelle je l’ai est de pouvoir extraire ces images.
Je ne suis pas contre le fait que Docker gagne de l’argent, je leur verse déjà de l’argent et j’ai encouragé les clients à faire de même. Mon problème concerne les messages médiocres, l’anxiété délibérée qu’ils ont créée pour bon nombre de leurs utilisateurs de communauté les plus fidèles et les plus solidaires et leur vision hypocrite de la durabilité de l’Open Source.
Si vous utilisez GitHub Actions, il est facile de publier des images sur GHCR.io – vous pouvez utiliser l’exemple pour le entrée-opérateur J’ai partagé.
Mais qu’en est-il de la propre fiabilité de GitHub ?
Je parlais à un client pour actionné Seulement hier. Ils étaient satisfaits de nos produits et services, mais au cours de leur première semaine de PoC, ils ont constaté des temps d’arrêt en raison du nombre croissant de pannes et d’incidents de GitHub.
Nous ne pouvons qu’espérer que tout ce qui a causé des problèmes presque tous les jours depuis le début de l’année sera résolu par les dirigeants.
GitHub est-il parfait ?
Je n’aurais jamais prédit la façon dont Docker a changé depuis sa renaissance – du chouchou de la communauté open source, sur l’ordinateur portable de chaque développeur, à l’endroit où nous en sommes aujourd’hui. Ainsi, avec les développements récents sur GitHub comme Actions et GHCR qui ne font que s’améliorer, avec leur acquisition par Microsoft – il est tentant de croire qu’ils sont infaillibles et ne prendraient pas de décision qui pourrait nuire aux mainteneurs. Toutes les entreprises doivent travailler sur une base de profits et pertes. Un excellent exemple de la façon dont GitHub a également nui aux développeurs open source a été lorsqu’il a annulé tous les parrainages aux mainteneurs qui étaient payés via PayPal. Cela a été fait dans un délai très court, et il frapper mon propre travail open source très dur – aggravée par le ralentissement mondial.
Et si GitHub “fait un Docker sur nous” ?
Et si GitHub commençait à facturer les minutes d’Actions open source ? Ou pour le stockage de référentiels Open Source et publics ? C’est un risque auquel nous devons être préparés et plus une question de “quand” que de “si”. Il y a seulement quelques années, Travis CI était l’endroit où les projets Open Source construisaient leur logiciel et collaboraient. Je ne pense pas en avoir entendu parler depuis.
Ne sous-estimons pas les efforts déployés par les mainteneurs de l’Open Source pour qu’ils puissent continuer à servir leurs communautés. Ils travaillent déjà jour et nuit sans salaire ni financement, alors même si cela ne convient à personne, nous trouverons une solution. Tout comme nous l’avons fait lorsque Travis CI nous a refusé, et maintenant Docker évite ses racines Open Source.
Voyez ce que les gens disent sur Twitter :
Docker dit-il que l’organisation OSS openfaas sur Docker Hub sera supprimée si nous ne souscrivons pas à un forfait payant ?
Qu’en est-il de Prometheus et de toutes les autres nombreuses organisations OSS sur Docker Hub ?
cc @justincormack pic.twitter.com/FUCZPxHz1x
– Alex Ellis (@alexellisuk) 14 mars 2023