ホームページ > バックエンド開発 > Golang > Spring Boot 3 bootBuildImage を使用して Golang パッケージをビルドしますか?

Spring Boot 3 bootBuildImage を使用して Golang パッケージをビルドしますか?

PHPz
リリース: 2024-02-06 08:33:13
転載
866 人が閲覧しました

使用 Spring Boot 3 bootBuildImage 构建 Golang 包?

#質問の内容

Spring Boot v3.1.5 を使用しており、bootBuildImage を使用してイメージをビルドしています。 画像をスキャンしたところ、golang に関連する CVE が多数見つかりました。 私が理解している限り、イメージ構築プロセス中に複数の golang ビルド パッケージが使用されます。

この問題を解決する方法はありますか?これらのパッケージの使用を避けるように 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 設定の構成などのいくつかの操作を実行します。これらの操作は、

helper

という名前の別のバイナリ (ビルドパック イメージと同じディレクトリ内) によって実行されます。 main とは異なり、このバイナリは最終イメージにコピーされるため、スキャナは Go バイナリがイメージ内に存在すると正しく認識します。これは helper バイナリです。 dive を使用してアプリケーション イメージを表示すると、helper バイナリを追加するレイヤーが表示され、これを確認できます。 スキャナはこのバイナリを認識し、他のものと同様にスキャンします。バイナリから、そのバイナリを作成した Golang のバージョンを知ることができ、そこから、そのバイナリが、そのバージョンの Go 以降の

既知の CVE に対して脆弱である可能性があることがわかります。

スキャナーは、バイナリの目的や実際に CVE に対して脆弱かどうかについてまったく知りません。あなたがどの CVE を指しているのかわかりませんが、Paketo ビルドパック helper バイナリのコンテキストを考慮すると、ほとんどの CVE は適用されないと言えます。たとえば、サーバー、ネットワーク、HTTP に関連するものは関係ありません。

helper バイナリは実行される CLI で、通常は引数/環境変数を読み取り、構造化テキストを出力します。通常、サーバー、ネットワーク、HTTP は必要ありません。 CVE とその影響について 具体的な

質問がある場合は、Paketo Slack で質問できますが、CVE リストをそこのスキャナーにダンプして、誰かがすべてを再確認することを期待しないでください。 。このプロジェクトは OSS プロジェクトであり、時間が許す限り誠意を持って対応することに注意してください。さらにサポートが必要な場合、または応答時間の保証が必要な場合は、商用ビルド パッケージ プロバイダーとの契約を検討してください。

Golang ファイルは削除できません。これらは本質的にビルド パッケージです。

あなたにできること:

ビルダーとビルドパックを常に最新の状態に保ってください。 Paketo プロジェクトは毎週新しいリリースをリリースしており、新しいリリースには最新の修正がすべて含まれるように積極的に Go を最新の状態に保ちます。
  1. 報告された CVE を確認してください。最新の状態を維持していれば、多くの CVE は存在しないはずです。パッケージ バイナリが構築されるコンテキスト (上記を参照) を考慮すると、これらは無関係である可能性が高いため、スキャナにそれらを無視するように指示できます。彼らはすぐに出発するはずです、なぜなら1. )
  2. Spring Boot ビルド ツールを使用しているため、
  3. このお知らせ
  4. を確認し、必要な変更を適用していることを確認してください。これを行わないと、非常に古いビルド パッケージが使用されるため、間違いなく大量の CVE が発生します。

以上がSpring Boot 3 bootBuildImage を使用して Golang パッケージをビルドしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート