NEWS
VisualStudio Code und Devcontainer
-
@oliverio
nachdem ich das weiter untersucht habe, habe ich den fehler gefunden.
die nachrichten zwischen client und server werden über websockets übermittelt.
die anfragen zu websockets müssen allerdings speziell weitergeleitet werden.
dazu ist in der nginx configuration eine separate location angegeben, die auf den match /socket.io/ horcht.
problem ist, das die websockets anfragen nicht mit dieser url übermittelt werden.durch folgende Anpassung werden nun die websockets ebenfalls korrekt vermittelt.
Da leider kein direkter Match auf /?sid möglich war, hier der Umweg über die auswertung der Argumente.location / { error_page 418 = @websocket; proxy_redirect off; proxy_pass http://iobroker:8081; if ( $args ~ "sid=" ) { return 418; } } location @websocket { proxy_pass http://iobroker:8081; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_read_timeout 86400; proxy_send_timeout 86400; }
-
Hallo,
ich starte ein Projekt das mit einem aktuellen Template mit Dockerunterstützung gebaut wurde, z.B.
https://github.com/UncleSamSwiss/ioBroker.loxone
oder auch andere.
Docker Desktop ist installiert. Dann mit Visual Studio Reopen in Container gewählt.
Nach dem Download des Images und Start des Containerts kommt immer diese Meldung:[80537 ms] Start: Run in container: /bin/sh -c iob del discovery && iob plugin disable sentry && iob object set system.config common.licenseConfirmed=true && NPM_PACK=$(npm pack) && iob url "$(pwd)/$NPM_PACK" --debug && rm "$NPM_PACK" Delete adapter "discovery" removed 42 packages in 777ms 26 packages are looking for funding run `npm fund` for details Objects database error: connect ECONNREFUSED 127.0.0.1:9001 Objects database error: connect ECONNREFUSED 127.0.0.1:9001 Objects database error: connect ECONNREFUSED 127.0.0.1:9001 Objects database error: connect ECONNREFUSED 127.0.0.1:9001 The host "iobroker-loxone" does not exist! [129608 ms] postCreateCommand failed with exit code 30. Skipping any further user-provided commands. Done. Press any key to close the terminal.
und dann noch:
[129608 ms] Error: Command failed: /bin/sh -c iob del discovery && iob plugin disable sentry && iob object set system.config common.licenseConfirmed=true && NPM_PACK=$(npm pack) && iob url "$(pwd)/$NPM_PACK" --debug && rm "$NPM_PACK" [129608 ms] at RL (c:\Users\user\.vscode\extensions\ms-vscode-remote.remote-containers-0.262.3\dist\spec-node\devContainersSpecCLI.js:1690:137) [129608 ms] at process.processTicksAndRejections (node:internal/process/task_queues:96:5) [129609 ms] at async Promise.all (index 0) [129610 ms] at async qg (c:\Users\user\.vscode\extensions\ms-vscode-remote.remote-containers-0.262.3\dist\spec-node\devContainersSpecCLI.js:1682:3580) [129610 ms] at async $g (c:\Users\user\.vscode\extensions\ms-vscode-remote.remote-containers-0.262.3\dist\spec-node\devContainersSpecCLI.js:1682:2837) [129611 ms] at async rue (c:\Users\user\.vscode\extensions\ms-vscode-remote.remote-containers-0.262.3\dist\spec-node\devContainersSpecCLI.js:2013:27124) [129611 ms] at async tue (c:\Users\user\.vscode\extensions\ms-vscode-remote.remote-containers-0.262.3\dist\spec-node\devContainersSpecCLI.js:2013:24813) [129631 ms] Exit code 1 [129632 ms] Command failed: C:\Users\user\AppData\Local\Programs\Microsoft VS Code\Code.exe --ms-enable-electron-run-as-node c:\Users\user\.vscode\extensions\ms-vscode-remote.remote-containers-0.262.3\dist\spec-node\devContainersSpecCLI.js run-user-commands --user-data-folder c:\Users\user\AppData\Roaming\Code\User\globalStorage\ms-vscode-remote.remote-containers\data --workspace-folder c:\Users\user\Documents\ioBroker.loxone --id-label devcontainer.local_folder=c:\Users\user\Documents\ioBroker.loxone --container-id 5bfcd24f499c876e3a959d535b25abf6132f6f2bc1f3ead064d5e2a992cd7e84 --log-level debug --log-format json --config c:\Users\user\Documents\ioBroker.loxone\.devcontainer\devcontainer.json --default-user-env-probe loginInteractiveShell --skip-non-blocking-commands false --prebuild false --stop-for-personalization true --remote-env SSH_AUTH_SOCK=/tmp/vscode-ssh-auth-bc7676f9975cc0230a214853edad6797a4528700.sock --remote-env REMOTE_CONTAINERS_IPC=/tmp/vscode-remote-containers-ipc-bc7676f9975cc0230a214853edad6797a4528700.sock --remote-env REMOTE_CONTAINERS=true --mount-workspace-git-root true --terminal-columns 186 --terminal-rows 18
Der Webserver ist zwar irgedwie erreichbar auf http://127.0.0.1:8081/ es kommt aber nur das Startlogo. Könnt ihr mir sagen was bei mir falsch läuft?
-
@killroy2
Das sind wieder andere Fehlermeldungen die ich hatte.
Ich habe es aber mit einem frisch generierten Adapter Template versucht.https://github.com/ioBroker/create-adapter
Das Problem mit dem Logo ist das was ich oben beschrieben habe und ist, wenn es sich als das selbe Problem rausstellt mit der Lösung behebbar, die ich geposted habe.
Der Port für den devcontainer ist eigentlich 8082
-
@oliverio damit funktionierts auch bei mir, vielen dank
-
Dann noch eine Frage,
wie schaffe ich es ein Update vom der Konfigurationsseite in Docker Instanz laufen zu lassen?mein adapter läuft aus /workspace heraus
in den Instanzen sehe ich ihn nicht
Installiere ich den Adapter über IOB Bordmittel kommt er nach /opt/iobroker/node_modules/iobroker.adapter/
Änerungen dort scheinen keine Auswirkung auf die Konfigurationsseite zu haben und mit
iobroker upload
komme ich auch nicht weiter. -
Hallo,
bei mir startet ioBroker im devcontainer leider nicht.
Ich arbeite mit Win 11, neuestes Docker. Er erstellt auch den devcontainer und das ioBroker-Start-Script läuft erst mal an:
Dann bricht es jedoch hier ab:
Der Inhalt des Logs:
Habe es jetzt mehrfach probiert ohne Erfolg. Habe sowohl die .devcontainer-Dateien vom loxone-Adapter probiert, als auch mir neue mit dem adapter-creator erstellen lassen. Das Ergebnis ist immer gleich.
Habe dann auch mal direkt ioBroker im Docker von buanet installiert - das lief! Ist doch sehr komisch, oder?
Hat jemand eine Idee, wie ich da weiter komme?
LG
-
@s-bormann startest du das alles schön aus vs code heraus? schon mal versucht alles material im docker desktop zu löschen?
-
@killroy2 sagte in VisualStudio Code und Devcontainer:
@s-bormann startest du das alles schön aus vs code heraus? schon mal versucht alles material im docker desktop zu löschen?
Hallo, ja, ich starte alles aus VS Code heraus. Prinzipiell startet er dann ja auch alles, bricht aber eben an der oben gezeigten Stelle ab. Ich habe Docker komplett gelöscht und neu installiert, gleiches Problem.
Inzwischen habe ich herausgefunden, dass wenn ich von das DockerImage von latest auf 7.2.0 umstellen, der iobroker startet. Allerdings komme ich trotzdem nicht auf die Weboberfläche, das IO Logo erscheint, und dreht endlos.
Ich wäre wirklich dankbar für weitere Ideen, habe jetzt schon eineinhalb Tage fast nichts anderes gemacht - leider ohne Erfolg und etwas frustrierend…
LG
-
dann könnte es das problem sein
https://forum.iobroker.net/topic/36034/visualstudio-code-und-devcontainer/116?_=1679912911798 -
@oliverio Hi, das hat sehr weiter geholfen! Vielen Dank!
Mit Deinen Änderungen und der Änderung im dockerfile Version 7.2.0 zu verwenden läuft es.
Damit ich den web-Adapter verwenden kann, hab ich zusätzlich den Port 8082 vom ioBroker freigegeben. Das klappt auch.Aaber: der zu developende Adapter wird nicht installiert. Bei der Erstellung des Containers bricht der postCreateCommand vorzeitig mit Fehler 24 ab. Konnte den Adapter aber von Hand installieren, in dem ich die postCreateCommands nach und nach ins Terminal eingegeben habe.
Wenn ich allerdings etwas bearbeite (z.B. in der index_m.html), wird das nicht automatisch aktualisiert.
Außerdem kapiere ich nicht ganz, für was der nginx mit dem Proxy eigentlich gebraucht wird? Kann ich nicht direkt den Port 8081 von docker zugänglich machen (ports: 8081:8081) ?
-
@s-bormann
Die Ersteller haben den anderen Port gewählt weil sie davon ausgegangen sind das der standardport schon oft durch die Standardinstallation belegt istDie besondere Behandlung ist notwendig weil über den Port 2 Arten von Abfragen erfolgen bei der eine davon im Proxy besonders behandelt werden müssen (normale http get und websockets)
Bei den Fehlern von postCreateCommands hatte ich auch immer Schwierigkeiten. Ich glaube da gibt es eine zeitliche Abhängigkeit da wohl iobroker schon gestartet wird.
In vs Code kann man direkt die ganzen Meldungen verfolgen.
Mach zu den Fehlern und deinen Erkenntnissen am besten auf github bei create adapter einen usuell auf.