So containerisieren Sie den Eris-Dienst

Eris ist eine einzigartige Architektur, die einen sehr nützlichen Vorteil aus der Containerisierung der Daten, Dienste – Verträge, js – in separate Containerinstanzen selbst gezogen hat. Mit der Absicht, eris in Docker auszuführen, habe ich ein Docker-Image erstellt, indem ich die Anweisungen unter „Erste Schritte“ in einer Docker-Datei verwendet habe. Wenn ich jedoch einen CMD/ENTRYPOINT auf die Anweisung eris init setze, kann ich keine Containerinstanz mit docker run -i -t --name test_eris erstellen. Dies ist sinnvoll, da der Eris-Server eine Verbindung zum Docker-Daemon herstellt, um Bilder für Eris-DB, Eris-Schlüssel, Eris-Aktionen usw. abzurufen. Meine Frage zum Ansatz zum Ausführen des Eris-Servers in einem Container? 1. Installieren Sie einen weiteren Docker-Daemon in der Docker-Datei für das eris_image. Dies würde jedoch einen Container innerhalb der Containerarchitektur erstellen. Ich vermute, dass dies eine sehr erwünschte lateral skalierbare Architektur unnötig verkomplizieren könnte. Anregungen? 2. Ein alternativer Ansatz, den ich mir vorstellen kann, ist das Erstellen separater Container-Images für eris-cli, eris-db, eris-keys usw. mithilfe der Dockerfiles aus dem eris-ltd-Github-Repo. Wenn dies der Ansatz wäre, was wären die Empfehlungen, um sicherzustellen, dass eris beim Erstellen einer privaten Kette mit diesem eingerichteten Kundencontainer wie erwartet funktionieren kann?

Antworten (1)

Eris ist ein CLI-Tool, das sich auf die Container-Orchestrierung für Blockchain-Anwendungen konzentriert. Normalerweise empfehlen wir, es auf dem Host zu installieren. Es ist sicherlich möglich, innerhalb von Docker zu laufen, aber es wird viel weniger bequem sein.

Allerdings haben wir Bilder für eris auf quay.io verfügbar. Sie können auch das eris-cli-Repo abrufen und die kanonische Dockerdatei von dort aus erstellen.

Wenn Sie Ihre eigene erstellen, sollten Sie eris initeinen RUN-Befehl in der Dockerdatei haben. Der EINTRITTSPUNKT sollte einfach eris sein. Nicht eris init.

Der einfache Weg, eris aus dem Docker heraus auszuführen, ist jedoch unten.

docker pull quay.io/eris/eris && docker run -v /var/run/docker.sock:/var/run/docker.sock ... quay.io/eris/eris erisCommand

Wo ... sind alle anderen Flags, die Sie für Ihren Docker-Container benötigen.

Ändern Sie diese Zeile und erstellen Sie das Docker-Image neu.
Vielen Dank! Zusätzlich zu der oben vorgeschlagenen Änderung musste ich wrapdocker aufrufen - was dem Benutzer half, sich mit dem Daemon zu verbinden, falls das privilegierte Flag verwendet wurde. Durch das Binden von docker.sock-Dateien vom Host an den Container wurde sichergestellt, dass die von den eris-Befehlen erstellten Container tatsächlich Geschwister-Container sind. Dies wirft jedoch Fragen auf, wie dies in der Cloud gehandhabt werden kann. Ich habe Bilder für Schlüssel, Verträge, ipfs usw. zurückverfolgt und separat erstellt - was möglicherweise eine bessere Option ist, als eris-cli anzudocken. Gibt es Vorschläge, die Sie beim Ausführen benutzerdefinierter Aufrufe an die Container oder beim Hinzufügen von Knoten beachten sollten?
Sie sollten keine Bilder selbst erstellen müssen, aber Sie können es immer. Wir speichern Bilder für alles in quay.io/eris ... Wenn Sie in der Cloud arbeiten möchten, ist es vorerst besser, Kubernetes oder Docker Cloud oder ein anderes ähnliches System zu verwenden und die Bilder dann direkt zu verwenden. Das Tool Eris ist eigentlich nur ein Automatisierungs-Framework zum Einrichten, Einschalten und Verbinden von Containern. Sie könnten es von einem Cloud-basierten Containersystem aus verwenden, aber es wäre wahrscheinlich mehr Arbeit als nötig, wenn Sie sich in einer relativ stabilen Umgebung befinden, in der Sie Ketten nur ein- und ausschalten müssen.