Winston: Kann nicht auf Docker nach 3.3.0/3.3.1 installiert werden

Erstellt am 22. Juni 2020  ·  23Kommentare  ·  Quelle: winstonjs/winston

npm ERR! path git
npm ERR! code ENOENT
npm ERR! errno ENOENT
npm ERR! syscall spawn git
npm ERR! enoent Error while executing:
npm ERR! enoent undefined ls-remote -h -t ssh://[email protected]/DABH/diagnostics.git
npm ERR! enoent
npm ERR! enoent
npm ERR! enoent spawn git ENOENT
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

Sieht so aus, als ob dies mit # 1813 zusammenhängt, und es passiert immer noch, wenn versucht wird, auf Docker mit nodejs 12 zu installieren.

Hilfreichster Kommentar

Alles, v3.3.2 wurde veröffentlicht, dies lädt die gegabelte diagnostics -Abhängigkeit von NPM herunter, nicht von GitHub, also sollte es für Sie funktionieren. Bitte zögern Sie nicht zu bestätigen oder abzulehnen. Danke!

Alle 23 Kommentare

Dasselbe Problem hier, aber nicht nur im Docker. Ich kann mein Projekt wegen dieser Abhängigkeit nicht npm installieren:

npm ERR! Error while executing:
npm ERR! /usr/local/bin/git ls-remote -h -t ssh://[email protected]/DABH/diagnostics.git
npm ERR! 
npm ERR! ssh: connect to host github.com port 22: Connection timed out
npm ERR! fatal: Could not read from remote repository.
npm ERR! 
npm ERR! Please make sure you have the correct access rights
npm ERR! and the repository exists.
npm ERR! 
npm ERR! exited with error code: 128

Frage mich, ob das Problem darin besteht, dass versucht wird, die dep über ssh anstelle von https zu erreichen.

Kann einer von Ihnen versuchen, Winstons package.json so zu ändern, dass diagnostics dep ist
git+https://github.com/DABH/diagnostics.git
? Das sollte es zwingen, https zu verwenden, aber ich möchte 100% sicher sein, dass das Ihr Problem löst, bevor Sie eine weitere Hotifx-Veröffentlichung durchführen. Danke!

Ich habe das gleiche Problem bei der Installation über Docker.
Ich habe versucht, die package.json zu ändern, bin mir aber nicht sicher, ob ich es richtig mache.
in node_modules/winston/package.json habe ich geändert: "diagnostics": " github:DABH/diagnostics#master ",
in: "diagnostics": "git+ https://github.com/DABH/diagnostics.git ",

Dies funktioniert nicht, aber ich hätte erwartet, dass eine Abhängigkeit geändert werden müsste, die mit „diagnostics.git“ endet, aber ich konnte das im Projekt nicht finden.

Bearbeiten: Ich verwende ' node:12.10.0-alpine ' als Basisbild für Docker

Ich habe das Problem untersucht und es sieht so aus, als ob das Problem von einem Alpin-basierten Docker-Image herrührt. Sogar das folgende Dockerfile kann unabhängig von der Knotenversion nicht erstellt werden.

FROM node:14-alpine

RUN npm install git+https://github.com/lodash/lodash

Ah, weil das dep von github kommt, brauchst du git...

FROM node:14-alpine

RUN apk update && apk upgrade && \
    apk add --no-cache bash git openssh

RUN npm install git+https://github.com/lodash/lodash

Ich verstehe, dass das keine gute Lösung ist. Die Alternative ist, dass ich meinen diagnostics -Fork auf NPM veröffentlichen muss, aber dieses Paket ist bereits auf NPM, also müsste ich wohl den Namen meines Repos oder so etwas ändern, damit ich es eindeutig veröffentlichen kann. Irgendwelche Tipps willkommen, sonst werde ich mir das später heute ansehen.

Ja, ich habe die gleiche Lösung gefunden. (Ich konnte mir nicht einmal vorstellen, dass Git nicht auf Alpine versendet wird.) Ich bin mit dieser Lösung einverstanden.

Das Problem lag nicht bei Winston, also schließe ich dies. Danke für die Hilfe!

Danke, siehe mein Beitrag oben ^^

@DABH @Kivol

hm, ja, ich verstehe, danke :)

Für mich bleibt die Lösung vorübergehend und das Problem sollte nicht geschlossen werden.

Ein NPM-Paket sollte kein Git für die Installation benötigen, sondern nur npm. Wenn Sie eine FORK aus einem anderen Paket verwenden, weil diese nicht Ihren Anforderungen entspricht. Ich denke, dieser FORK muss an der Quelle integriert werden oder ein für Winston gepflegtes Projekt werden und daher veröffentlicht werden, wie Sie es vorgeschlagen haben. Es wäre ziemlich seltsam, die Installation von Git oder anderen Tools für die Installation eines npm-Pakets für Hunderte von Docker-Images aufzuzwingen. Bilder und Prozess müssen so leicht wie möglich sein

Hallo, ich möchte nur zum Ausdruck bringen, dass git kein dep für winstonjs sein sollte. Hoffe das lässt sich lösen. Wir haben ein paar hundert Docker-Images und ich denke nicht, dass es sehr ideal wäre, sie alle zu ändern. Und ich bin sicher, vielen von uns würde es genauso gehen. :)

Wenn 3.3.x wirklich solche Breaking Changes hat, sollten wir sie stattdessen auf 4.x verschieben.

@DABH @Kivol

Zweitens sind die obigen Kommentare zu dieser Änderung eine Breaking Change. Wir haben alpine Docker-Images in der Produktion, die dadurch beschädigt werden.

Wenn dies erforderlich ist, wird ein 4.x-Wechsel unterstützt.

Wow, das macht das Internet kaputt... :)
Sehr seltsam, tatsächlich Git zu verlangen.

Ich habe das gleiche Problem nicht in einem Docker-Image, sondern in meinem Unternehmensnetzwerk.

Ich verwende Artifactory zum Herunterladen aller Abhängigkeiten (npm und github wurden blockiert). Wenn Sie Ihren Fork verwenden, schlagen alle Projekte ohne öffentlichen Zugriff fehl. Die größten Auswirkungen haben Unternehmen oder CI/CD mit Zugangsbeschränkung.

Wenn Sie Ihren Fork behalten möchten, müssen Sie aus meiner Sicht Standard sein und ein neues Paket npm erstellen und nicht auf ein Github-Repo verweisen.

Warum ist dieses Ticket noch geschlossen?

Hier das gleiche Problem, bitte beheben. Leider wird Winston als Modul einer Unterabhängigkeit installiert, sodass wir die Version nicht direkt ändern können. Dadurch wird unsere CI-Pipeline unterbrochen, die keinen Zugriff auf öffentliches Github hat.

+1 für dieses Problem, dies unterbricht unsere CI-Pipeline.
Bitte machen Sie die Änderungen rückgängig.

@Kivol bitte erneut öffnen, Git installieren ist für viele, viele Projekte keine Option
besonders wenn Winston keine direkte Abhängigkeit ist.

+1 auch. Dies verstößt gegen das Build-Once-Prinzip und bricht Builds für unsere Verbraucher. Vielleicht ist das Zurücksetzen bis zur Behebung hier eine gute Option?

Nur um zu sagen, dass ich denke, dass die obigen Kommentare deutlich zeigen, wie viel Winston verwendet wird und von vielen Projekten abhängt. Auch wenn es schmerzt, wenn Probleme auftreten – ich hoffe, ich spreche für viele –, wenn ich sage, dass wir den Beitrag von Winston und seinen Entwicklern zu schätzen wissen.

Hier gilt das gleiche.
Zwei Punkte zur Ergänzung:

  1. Das Hinzufügen von Abhängigkeiten zum CI/CD-Job basierend auf einem Alpine-Image bricht das Konzept und ist mit Kosten verbunden (denken Sie an „_green dev_“).
  2. In einer Unternehmensumgebung können wir nicht die gesamte Netzwerkkonfiguration (wenn überhaupt möglich!) ändern, um nur ein Paket zu erhalten

Vielen Dank für die aktiven Kommentare, bitte haben Sie ein paar Stunden Geduld, während wir versuchen, eine bessere (nicht von Git abhängige) Lösung dafür einzuführen.

Alles, v3.3.2 wurde veröffentlicht, dies lädt die gegabelte diagnostics -Abhängigkeit von NPM herunter, nicht von GitHub, also sollte es für Sie funktionieren. Bitte zögern Sie nicht zu bestätigen oder abzulehnen. Danke!

Danke für die Fehlerbehebung.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen