Allgemeine Einführung
Cloudflare Serverless Registry ist eine serverlose Container-Registry, die auf Cloudflare Workers und R2 Storage basiert. Sie unterstützt Push- und Pull-Images und bietet eine auf Benutzername, Passwort und öffentlichem Schlüssel basierende JWT-Authentifizierung. Das Projekt ist einfach zu implementieren, mit Docker-Operationen kompatibel und für die Verwaltung von Container-Images in einer serverlosen Umgebung geeignet. Trotz einiger Einschränkungen bietet die Serverless Registry eine leichtgewichtige und skalierbare Lösung für Entwickler.
Funktionsliste
- Push- und Pull-Unterstützung für den Spiegel
- Benutzername, Passwort und JWT-Authentifizierung bereitstellen
- Docker-kompatibler Betrieb
- Unterstützung für den Rückgriff auf andere Registraturen
- Einfache Bereitstellung und Verwaltung
Hilfe verwenden
Installation und Einsatz
- Installieren von Abhängigkeiten: Verwenden Sie pnpm, um alle Abhängigkeiten zu installieren (andere Paketmanager können funktionieren, aber nur pnpm wird unterstützt).
$ pnpm installieren
- Vorbereiten der Wrangler-Datei: Kopieren Sie die Beispieldatei und konfigurieren Sie sie.
$ cp wrangler.toml.example wrangler.toml
- Einstellen des R2-Storage BucketErstellen Sie einen R2-Speicher-Bucket.
$ npx wrangler --env Produktion r2 Eimer erstellen r2-registry
- Konfigurieren von wrangler.tomlFügen Sie die Konfiguration des R2-Storage-Buckets zur Datei wrangler.toml hinzu.
r2_eimer = [ { binding = "REGISTRY", bucket_name = "r2-registry" } ]
- Register für den EinsatzBereitstellung der Registry in einer Produktionsumgebung.
$ npx wrangler deploy --env Produktion
Authentifizierung mit Benutzernamen und Passwort
- Einstellen des Benutzernamens und des PasswortsBenutzername und Passwort auf vertraulich setzen.
$ npx wrangler secret put USERNAME --env Produktion $ npx wrangler secret put PASSWORD --env Produktion
JWT-Zertifizierung
- JWT-Schlüssel hinzufügenHinzufügen eines base64-kodierten öffentlichen JWT-Schlüssels zur Authentifizierung des Passworts oder Tokens.
$ npx wrangler secret put JWT_REGISTRY_TOKENS_PUBLIC_KEY --env Produktion
Pushing und Pulling von Images mit Docker
- Anmeldung bei DockerMelden Sie sich mit Ihrem Benutzernamen und Passwort bei Docker an.
exportieren REGISTRY_URL=Ihre-url-here echo $PASSWORT | docker login --username $USERNAME --Passwort-stdin $REGISTRY_URL
- Push-Spiegel (Berechnung)Push the image to the registry.
docker pull ubuntu:latest docker tag ubuntu:latest $REGISTRY_URL/ubuntu:latest Docker-Push $REGISTRY_URL/ubuntu:latest
- Spiegel abziehen: Ziehen Sie das Bild aus der Registrierung.
docker rmi ubuntu:latest docker pull $REGISTRY_URL/ubuntu:latest
Konfiguration Rückzug
- Einstellen der Fallback-Registrierung: Konfigurieren Sie die Fallback-Registrierung in der Datei wrangler.toml.
[env.production] REGISTRIES_JSON = "[{ \ "registry\": \ "url-to-other-registry\", \ "password_env\": \ "REGISTRY_TOKEN\", \ "username\": \ "username-to-use\" }]"
- Einstellen des Registrierungs-Tokens: Setzen Sie das Registrierungs-Token auf vertraulich.
Katze . /registry-service-credentials.json | base64 | wrangler --env Produktionsgeheimnisse put REGISTRY_TOKEN