この問題を解決する方法はありますか?これらのパッケージの使用を避けるように Spring を設定できますか?
使用したビルドパックを構成しようとしましたが、成功しませんでした。 作成するイメージには golang 関連のファイルを含めないでおきたいと考えています。
いいえ、それは違います。 Java アプリケーションをビルドする場合、Java 関連のビルド パッケージのみが使用されます。 Go ビルドパックは使用しません。ビルドの出力で使用されるビルド パッケージのリストを確認できます。こんな感じです。インストルメンテーションにリストされているビルドパックは、
唯一呼び出されるビルドパックです。 リーリー あなたを混乱させるかもしれないのは、
すべての Paketo ビルドパック自体が Golang で書かれていることです。したがって、gcr.io/paketo-buildpacks/bellsoft-liberica などのビルドパック イメージを選択すると、/cnb/buildpacks/paketo-buildpacks_bellsoft-liberica/10.4 が表示されます。 a Go binary at 2/bin /main
. これは、インストルメンテーションおよびビルド中に呼び出され、実際にパッケージをビルドする作業を実行します。
さらに、ビルドパックは、アプリケーション ランタイムが開始される前に、JVM 設定の構成などのいくつかの操作を実行します。これらの操作は、
という名前の別のバイナリ (ビルドパック イメージと同じディレクトリ内) によって実行されます。 main
とは異なり、このバイナリは最終イメージにコピーされるため、スキャナは Go バイナリがイメージ内に存在すると正しく認識します。これは helper
バイナリです。 dive
を使用してアプリケーション イメージを表示すると、helper
バイナリを追加するレイヤーが表示され、これを確認できます。
スキャナはこのバイナリを認識し、他のものと同様にスキャンします。バイナリから、そのバイナリを作成した Golang のバージョンを知ることができ、そこから、そのバイナリが、そのバージョンの Go 以降の
スキャナーは、バイナリの目的や実際に CVE に対して脆弱かどうかについてまったく知りません。あなたがどの CVE を指しているのかわかりませんが、Paketo ビルドパック helper バイナリのコンテキストを考慮すると、ほとんどの CVE は適用されないと言えます。たとえば、サーバー、ネットワーク、HTTP に関連するものは関係ありません。
helper バイナリは実行される CLI で、通常は引数/環境変数を読み取り、構造化テキストを出力します。通常、サーバー、ネットワーク、HTTP は必要ありません。
CVE とその影響について
具体的な
Golang ファイルは削除できません。これらは本質的にビルド パッケージです。
あなたにできること:ビルダーとビルドパックを常に最新の状態に保ってください。 Paketo プロジェクトは毎週新しいリリースをリリースしており、新しいリリースには最新の修正がすべて含まれるように積極的に Go を最新の状態に保ちます。
以上がSpring Boot 3 bootBuildImage を使用して Golang パッケージをビルドしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。