Winston: 3.3.0 /3.3.1以降はDockerにインストールできません

作成日 2020年06月22日  ·  23コメント  ·  ソース: 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

これは#1813に関連しているようですが、nodejs12を使用してdockerにインストールしようとすると引き続き発生します。

最も参考になるコメント

すべて、 v3.3.2がリリースされました。これにより、分岐したdiagnostics依存関係がGitHubではなくNPMからダウンロードされるため、機能するはずです。 確認または拒否してください。 ありがとう!

全てのコメント23件

ここでも同じ問題がありますが、Dockerだけではありません。 この依存関係のため、プロジェクトをnpmでインストールできません:

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

問題は、httpsではなくsshを介してdepに到達しようとしていることであるかどうか疑問に思います。

ウィンストンのpackage.jsonを変更して、 diagnosticsの深さが次のようになるようにすることはできますか?
git+https://github.com/DABH/diagnostics.git
? これにより、httpsを使用するように強制されますが、別のhotifxリリースを実行する前に、問題が解決することを100%確認したいと思います。 ありがとう!

Dockerを介してインストールするときに同じ問題が発生します。
package.jsonを変更しようとしましたが、正しく実行されているかどうかわかりません。
node_modules / winston / package.jsonで変更しました: "diagnostics": " github:DABH / Diagnostics#master "、
into: "diagnostics": "git + https://github.com/DABH/diagnostics.git "、

これは機能していませんが、「diagnostics.git」で終わる依存関係を変更する必要があると予想していましたが、プロジェクトでそれを見つけることができませんでした。

編集:Dockerのベースイメージとして「 node:12.10.0-alpine 」を使用しています

私はこの問題について調査してきましたが、問題はアルパインベースのDockerイメージに起因しているようです。 次のDockerfileでさえ、ノードのバージョンに関係なく、ビルドに失敗します。

FROM node:14-alpine

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

ああ、depはgithubから来ているので、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

私はそれが素晴らしい解決策ではないことを理解しています。 別の方法として、 diagnosticsフォークをNPMで公開する必要がありますが、そのパッケージはすでにNPMにあるので、一意に公開できるようにリポジトリの名前などを変更する必要があると思います。 ヒントは歓迎します。それ以外の場合は、今日の後半でこれを見ていきます。

はい、私は同じ解決策を思いつきました。(gitが高山で出荷されていないことさえ想像できませんでした。)私はその解決策で大丈夫です。

問題はウィンストンではなかったので、これを閉じます。 助けてくれてありがとう!

ありがとう、上記の私の投稿を参照してください^^

@DABH @Kivol

ハム、うん、私は理解している、Thx :)

私にとって、解決策は一時的なものであり、問​​題を解決するべきではありません。

NPMパッケージは、インストールにgitを必要とせず、npmのみを必要とします。 別のパッケージのFORKを使用する場合、これはニーズに対応していないためです。 このFORKは、ソースで統合するか、Winstonのために維持されるプロジェクトになり、提案どおりに公開する必要があると思います。 何百ものdockerイメージに対して、npmパッケージのインストールにgitまたはその他のツールのインストールを強制するのは非常に奇妙です。 画像とプロセスは可能な限り軽量でなければなりません

こんにちは、私はgitがwinstonjsのdepであってはならないことを表現したいと思います。 これが解決できることを願っています。 数百のDockerイメージがあり、それらすべてを変更することは非常に理想的ではないと思います。 そして、私たちの多くが同じように感じると確信しています。 :)

3.3.xに実際にそのような重大な変更がある場合は、代わりに4.xに移動する必要があります。

@DABH @Kivol

次に、この変更が重大な変更であるという上記のコメント。 これにより破損するアルパインドッカーイメージが本番環境にあります。

これが必要な場合は、4.xの変更をサポートします。

うわー、これはインターネットを壊します... :)
確かにgitを必要とするのは非常に奇妙です。

Dockerイメージではなく、エンタープライズネットワークでも同じ問題が発生します。

すべての依存関係をダウンロードするためにアーティファクトを使用します(npmとgithubはブロックされました)。 フォークを使用すると、パブリックアクセスのないすべてのプロジェクトが失敗します。 最大の影響は、restreintアクセスを備えた企業またはCI / CDにあります。

私の見解では、フォークを保持したい場合は、標準であり、新しいパッケージnpmを作成する必要があり、githubリポジトリへのリファラーではありません。

では、なぜこのチケットはまだ閉じられているのですか?

ここでも同じ問題があります。修正してください。 残念ながら、winstonはサブ依存関係のモジュールとしてインストールされるため、バージョンを直接変更することはできません。 これにより、パブリックgithubにアクセスできないCIパイプラインが破損します。

この問題の+1は、CIパイプラインを破壊します。
変更を元に戻してください。

@Kivolをもう一度開いてください。gitをインストールすることは多くのオプションではありません-多くのプロジェクト
特にウィンストンが直接依存していない場合。

+1も。 これはビルドワンスの原則に違反し、消費者のビルドを破ります。 たぶん、修正されるまで元に戻すのがここでの良いオプションですか?

上記のコメントは、Winstonがどれだけ使用され、多くのプロジェクトに依存しているのかを明確に示していると思います。 ですから、問題が発生したときは苦痛ですが、ウィンストンとその開発者の貢献を大切にしていると言うときは、多くの人に話してもらいたいと思います。

こっちも一緒。
追加する2つのポイント:

  1. アルパインイメージに基づいてCI / CDジョブに依存関係を追加すると、概念が破られ、コストがかかります( "_green dev_"と考えてください)
  2. 企業環境では、ネットワーク全体の構成を変更して1つのパッケージだけを取得することはできません。

積極的なコメントをありがとうございます。このためのより良い(gitに依存しない)ソリューションを展開しようとしているので、数時間お待ちください。

すべて、 v3.3.2がリリースされました。これにより、分岐したdiagnostics依存関係がGitHubではなくNPMからダウンロードされるため、機能するはずです。 確認または拒否してください。 ありがとう!

修正していただきありがとうございます。

このページは役に立ちましたか?
0 / 5 - 0 評価