docs community blog github
Edit

Stacks

チュートリアルでは、Paketo ビルダーで Node.js のアプリケーションのコンテナイメージをビルドしました。 Buildpack と Builder に欠かせない構成要素がスタック(Stack)です。 スタックは、Buildpack のライフサイクルで使用するビルド時の環境と実行時の環境を提供するコンテナイメージです。

スタックとは何か

スタックは2種類のイメージで構成されています。

  • build image: アプリケーションをビルドするための環境です
  • run image: アプリケーションのコンテナイメージを実行するときの OS レイヤーです

Stack について詳しく知りたければ buildpacks.io を参照してください。

Paketo プロジェクトのリリースしているスタックについて

Paketo プロジェクトではいくつかのスタックを公開しています。

Tiny

Build Image

index.docker.io/paketobuildpacks/build:tiny-cnb
copy to clipboard
Copied!

Run Images

index.docker.io/paketobuildpacks/run:tiny-cnb
copy to clipboard
Copied!
gcr.io/paketo-buildpacks/run:tiny-cnb
copy to clipboard
Copied!

内容

  • Build: ubuntu:bionic + openssl + CA certs + compilers + shell utilities
  • Run: distroless-like bionic + glibc + openssl + CA certs

Base

Build Image

index.docker.io/paketobuildpacks/build:base-cnb
copy to clipboard
Copied!

Run Images

index.docker.io/paketobuildpacks/run:base-cnb
copy to clipboard
Copied!
gcr.io/paketo-buildpacks/run:base-cnb
copy to clipboard
Copied!

内容

  • Build: ubuntu:bionic + openssl + CA certs + compilers + shell utilities
  • Run: ubuntu:bionic + openssl + CA certs

Full

Build Image

index.docker.io/paketobuildpacks/build:full-cnb
copy to clipboard
Copied!

Run Images

index.docker.io/paketobuildpacks/run:full-cnb
copy to clipboard
Copied!
gcr.io/paketo-buildpacks/run:full-cnb
copy to clipboard
Copied!

内容

  • Build: ubuntu:bionic + many common C libraries and utilities
  • Run: ubuntu:bionic + many common libraries and utilities

Paketo スタックはいつ更新するのか

スタックのコンテナイメージは、使用しているパッケージに CVE の対応パッチが公開されるたびに再構築しています。 CVE について詳しくは Common Vulnerabilities and Exposures (CVE) を参照してください。 それ以外の場合でも、CVE のパッチ適用漏れがないよう、毎週再構築しています。

Paketo プロジェクトとしては、優先度が高および致命的な CVE のパッチが公開されたら 40 時間以内に対応することを目指しています。 優先度が低および中の CVE のパッチについては、2週間以内に対応することを目指しています。

注意:最新のスタックを使用して作成したコンテナイメージにセキュリティスキャンツールを実行すると、脆弱性を検出する場合があります。上流のパッケージ開発元から修正パッチが公開されていない場合や、Canonical 社が修正を不要だと判断した場合があるからです。

スタックは後方互換性を保証します。 メジャーバージョンが同じなら、安全に最新のバージョンへアップグレードできます。 後方互換性を保証できない場合、新しいメジャーバージョンとしてリリースします。

Paketo スタックが提供するセキュリティハードニングの考え方と対応

  • スタックの起源イメージとして Ubuntu 18.04 を使用しています。つまり、Canonical 社の提供する安全性に依拠しているということです。Canonical 社のセキュリティに対する考え方と対応については Web サイトUbuntu Wiki を参照してください
  • CVE の監視と修正パッチの適用を自動化しているため、基本的には Canonical 社が修正パッチを公開してから1時間以内に反映できるようになっています
  • スタックは、独立した非 root ユーザーでアプリケーションをビルドしたり実行したりするようになっています
  • スタックには、使用しているコンポーネント(起源OSやパッケージなど)に関するメタ情報が含まれています
  • アプリケーションをビルドするイメージと、アプリケーションを実行するイメージは独立しています。アプリケーションを実行するイメージは、セキュリティリスクになる可能性があるため、各種ツールやコンパイラのパッケージを取り除いてあります

Paketo Stack の GitHub リポジトリ

Edit

Last modified: September 14, 2021