NEWS
VisualStudio Code und Devcontainer
-
@EdgarM Auf dem Windowsrechner läuft sonst kein weiterer Server und iobroker lief da noch nie, da mein Produktionssystem auf einem NUC läuft.
@AlCalzone
ich hab nun ein wenig weiter recherchiert und im iobroker log die folgende Warnung gefunden:warn: host.iobroker-mytest does not start any instances on this host
Nach ein bisschen Suche im Forum soll man den admin adapter installieren
iobroker add admin
Danach klappt der Zugriff auf iobroker, aber ich habe nun 2 admin instanzen (0=inaktiv und 1=aktiv)
an was könnte das liegen? -
@OliverIO sagte in VisualStudio Code und Devcontainer:
host.iobroker-mytest does not start any instances on this host
Das gibts eigentlich nur, wenn sich der Hostname ändert. Ist mir beim Devcontainer noch nicht untergekommen, vielleicht ist das wegen deiner Container-zu-Container-Migration passiert?
-
@AlCalzone
kann natürlich alles sein, aber ich habe visual studio mit dem ordner, der durch den adapter creator erzeugt wurde neu geöffnet und den container mit diesen Informationen neu erzeugt (rebuild). Wo stehen den in den ganzen Dateien noch irgendwelche hostnamen? -
@OliverIO Nicht im Adapter, aber in dem ioBroker, der im Container läuft. Der ordnet Instanzen bestimmten Hosts zu, was bei manuellen Umzügen gern mal für "does not start any instances" sorgt.
-
@AlCalzone
aber es gibt doch nur einen iobroker container und der wird auf basis der konfigurationsdaten, welche mit dem adapter-creator erzeugt werden, komplett, auf basis von buanet und den weiteren Anweisungen, neu aufgebaut. der erste container hat doch damit nix mehr zu tun.
wenn ich ins logfile schaue dann ist der hostname genau so wie es im docker-compose angegeben ist. -
@OliverIO Einfache Lösung: mach mal "Rebuild Remote Container" in VS Code. Schlimmstenfalls musst du noch das Volumen löschen, aber das sollte eigentlich automatisch geschehen.
-
@UncleSam
auch schon gemacht. (also rebuild, oder container gelöscht und sogar die images gelöscht und neu runtergeladen.)
wie gesagt. ich verwende unverändert die daten die der adapter-creator erzeugt und baue daraus ein container.
iobroker startet erst, wenn ich manuell einen admin adapter hinzufüge (dann habe ich 2, wie oben beschrieben), ohne das Fehlermeldung wie oben beschrieben. -
@OliverIO Komisch, ich habe genau dasselbe vorgestern gemacht und das funktioniert. Kannst du sonst mal diesen Adapter herunterladen und versuchen, ob du den in Devcontainer öffnen kannst?
https://github.com/UncleSamSwiss/ioBroker.luxtronik2 -
@UncleSam
Ergebnis ist identisch. Bei Aufruf von http://localhost:8082/ kommt Bad gateway.
Wenn ich dann auf der console mir das logfile anschaue, dann wieder diese Fehlermeldungwarn: host.iobroker-luxtronik2 does not start any instances on this host
wenn ich dann noch einen admin adapter hinzufüge mit iob add admin
kann ich über den browser den iobroker aufrufen, hab dann 2 admin instanzen 0 und 1.
0 ist inaktivwenn es bei euch funktioniert, muss es ja noch an irgendwelchen Einstellungen liegen. Aber eigentlich ist doch alles in docker gekapselt
-
Nachtrag: Es scheint an postCreateCommand zu liegen.
Kommentiere ich diese komplett aus, dann läuft iobroker auf anhieb.
Sobald irgendein 'Befehl drin steht, dann ist es vorbei.
In einem anderen Thread, ich meine da ging es zum Zeitpunkt der Erstellung des buanet-docker-images, hat @AlCalzone geschrieben, das jeder einzelne Befehl intern in einem virtuellen Container ausgeführt wird und deswegen die Hostname sich dort jeweils ändert und es dadruch zu Problemen kommt da iobroker denk es sei ein multihost system und daher die obige warnung ausgibt. -
@OliverIO sagte in VisualStudio Code und Devcontainer:
das jeder einzelne Befehl intern in einem virtuellen Container ausgeführt wird und deswegen die Hostname sich dort jeweils ändert und es dadruch zu Problemen kommt
Das gilt nur für das erstellen eines Images, das hat nichts mit dem
postCreateCommand
zu tun, der wird von VS Code im fertigen Container ausgeführt.Komisch ist, dass das nur bei dir auftritt. Was für ein OS, Docker Version und VS Code Version hast du?
-
OS: steht im Screenshot von VS Code mit drin, Das ist das Update Mai 2020
Docker version 19.03.13, build 4484c46d9d
VS Code:
hier mal das terminal log, wen vs code den container erstellt
und das log aus dem docker-desktop für den iobroker container
evtl kannst du noch was herauslesen oder mit deinen logs vergleichen
-
@andre evtl kannst du hier auch mal mit drauf schauen, da ich gesehen habe, das du mit buanet, was hier ja die Grundlage darstellt, schon sonnigen Fehler hattest.
Wichtigste Information ist, der Fehler tritt erst auf, wenn in postcreatecommands etwas ausgeführt wird. -
@OliverIO Bingo! Den Fehler habe ich auch schon gesehen (oder zumindest davon gehört): obschon alle Instanzen "umgebogen" werden sollen, macht dies der Befehl nicht:
The host for instance "system.adapter.admin.0" was changed from "7673de0b8569" to "iobroker-luxtronik2".
Und trotzdem sucht er dann nach:
host.iobroker-luxtronik2 check instance "system.adapter.admin.0" for host "7673de0b8569"
Ich habe damals auf das buanet/iobroker "latest" gewechselt, das half. Leider ist das aber bereits so im Adapter Creator drin.
-
@UncleSam
Die Tests habe ich mit deinem Adapter luxtronik gemacht. Da steht im dockerfile für buanet schon latest drin.
Wie gesagt mit postcreatecommand kommt der Fehler, kommentiere ich diese Zeile aus, dann läuft Iobroker -
@OliverIO Ja, der Fehler entsteht scheinbar erst in dieser Kombination, aber es ist IMHO eindeutig ein Fehler in ioBroker js-contoller: obschon die Instanz auf den neuen Host umgebogen wurde, wird sie im nächsten Schritt wieder mit dem alten Hostname gesucht.
-
@OliverIO Du kannst ja einfach mal die Befehle aus dem postcreatecommand manuell ausführen, dann sollte es ja funktionieren.
-
@OliverIO sagte in VisualStudio Code und Devcontainer:
Da steht im dockerfile für buanet schon latest drin.
Mein Fehler: es sollte "beta" heissen, nicht "latest"
-
Ich misch mich hier auch noch mal zwischen. Inzwischen läuft der .devcontainer bei mir, aber
- ich bin mir nicht sicher wie ich die Dateien aus dem VsCode in den devcontainer übertrage und dann den Adapter mit den Änderungen neu starte.
- ich bin mir nicht sicher wie ich den Adapter Debuggen kann. .
-- Wenn ich im VsCode versuche den Adapter mit dem debugger zu starten bekomme ich die Folgende Meldung:
Error processing attach: Error: Could not connect to debug target at http://localhost:9229: Promise was canceled at e (/root/.vscode-server/bin/fcac248b077b55bae4ba5bab613fd6e9156c2f0c/extensions/ms-vscode.js-debug/src/extension.js:1:103335)
-
@Asgothian sagte in VisualStudio Code und Devcontainer:
ich bin mir nicht sicher wie ich die Dateien aus dem VsCode in den devcontainer übertrage und dann den Adapter mit den Änderungen neu starte.
Wenn du mit Devcontainer arbeitest, bist du schon im Container. Jede Änderung am Code geschieht direkt im Container (der dein lokales Dateisystem spiegelt).
Bezüglich starten mache ich das direkt zusammen mit dem Debugging: ich state den Adapter gar nie in ioBroker sondern immer nur mit F5 aus VS Code. Allerdings musst du noch eine Launch Config einrichten, die dann den Adapter mit den richtigen Argumenten startet (siehe weiter oben).
ich bin mir nicht sicher wie ich den Adapter Debuggen kann. .
-- Wenn ich im VsCode versuche den Adapter mit dem debugger zu starten bekomme ich die Folgende MeldungJa, du versuchst dich an einen laufenden Prozess anzuhängen; den gibt es aber nicht. Also entweder startest du den Adapter mit Debugger eingeschaltet (@AlCalzone hat da eine schöne Lösung) oder du machst es wie gerade beschrieben mit F5.
Aber zugegeben, wir müssen das noch verbessern; bis jetzt konnten wir uns noch nicht auf eine Herangehensweise einigen. Vorschläge?