【Netlify】ビルドイメージ更新とサイト設定の最適化ガイド - 警告解消と推奨設定
Netlifyでサイトを運用していると、「This project is using an older build image」という警告が表示されることがあります。この記事では、ビルドイメージの更新方法から、netlify.toml や .nvmrc によるNode.jsバージョン指定、Prerenderingの無効化まで、Netlifyの設定を最適化する手順を解説します。
ビルドイメージ更新警告とは
Netlifyの管理画面に以下のような警告が表示される場合があります。
This project is using an older build image that will reach end of support
in January 2026. Please update your build image here.
これは、Netlifyがサイトをビルドする際に使用するDockerイメージ(ビルドイメージ)が古いバージョンになっていることを示す警告です。
Netlifyはサイトのビルド処理をDockerコンテナ内で実行します。このコンテナのベースとなるOSイメージがビルドイメージです。古いイメージ(Ubuntu Focal 20.04など)はセキュリティアップデートが終了するため、定期的な更新が推奨されます。
ビルドイメージの更新手順
Netlifyの管理画面から以下の順にたどります。
Site configuration → Build & deploy → Continuous deployment → Build image selectionまたは、警告メッセージ内の「here」リンクをクリックしても同じページに移動できます。
以下の2つの選択肢が表示されます。
| イメージ | 状態 |
|---|---|
| Ubuntu Focal 20.04 | Deprecating - サポート終了予定 |
| Ubuntu Noble 24.04 | Current default - 推奨 |
Ubuntu Noble 24.04 (default) を選択して保存します。
ビルドイメージの更新に合わせて、Node.jsのバージョンを明示的に指定しておくと安全です。netlify.toml と .nvmrc の2つのファイルで指定できます。
netlify.toml の設定
プロジェクトのルートに netlify.toml を作成し、ビルドコマンドとNode.jsバージョンを指定します。
[build]
command = "npm run build"
publish = "dist"
[build.environment]
NODE_VERSION = "20"
各項目の説明です。
| 項目 | 説明 |
|---|---|
command | ビルド時に実行するコマンド |
publish | ビルド出力先のディレクトリ |
NODE_VERSION | 使用するNode.jsのバージョン |
.nvmrc の設定
プロジェクトのルートに .nvmrc ファイルを作成します。
20
netlify.toml はNetlifyのビルド設定として使用され、.nvmrc はローカル開発環境やCI/CDパイプラインでのNode.jsバージョン管理にも活用されます。両方を設定しておくと、環境間の一貫性を保てます。
ローカルビルド + CLI デプロイの場合
netlify deploy コマンドでローカルビルド済みのファイルをデプロイしている場合、ビルドイメージの影響はありません。
| デプロイ方法 | ビルド場所 | ビルドイメージ |
|---|---|---|
| Git連携(自動デプロイ) | Netlify側 | 使用する |
netlify deploy(CLIデプロイ) | ローカル | 使用しない |
CLIデプロイの場合、Netlifyはビルド済みの dist フォルダを受け取るだけなので、ビルドイメージは関係しません。ただし、将来Git連携に切り替える可能性を考慮して、設定は残しておくことをおすすめします。
Legacy Prerendering の無効化
もう1つよくある警告が、Legacy Prerenderingに関するものです。
This project is using legacy prerendering, which is being deprecated.
Please disable the feature and learn about alternatives here.
Prerendering とは
PrerenderingはSPA(Single Page Application)などJavaScriptで描画するサイトを、クローラー向けに事前にHTMLを生成する機能です。
Astro や Next.js では不要
AstroやNext.jsなどの静的サイトジェネレーターは、ビルド時にHTMLを生成するため、NetlifyのPrerendering機能は不要です。
無効化手順
以下の順にたどって無効化します。
Site configuration → Build & deploy → Post processing → Prerendering
「Disable」または「Off」に変更して保存します。
無料でAPIをデプロイできるサービスの比較
Netlifyに加えて、バックエンドAPI(Express、NestJSなど)を無料でデプロイできるサービスを紹介します。
| サービス | 常時稼働 | DB付属 | 無料枠の特徴 |
|---|---|---|---|
| Railway | ✅ | ✅ | 月$5クレジット(約500時間) |
| Render | ❌(スリープ) | ✅ | 750時間/月、15分無アクセスでスリープ |
| Fly.io | ✅ | ✅ | 3つの共有CPU VM |
| Vercel | ✅ | ❌ | Serverless Functions、100GB帯域/月 |
| Cloudflare Workers | ✅ | ✅ | 10万リクエスト/日 |
| Deno Deploy | ✅ | ❌ | 100万リクエスト/月 |
| Koyeb | ✅ | ❌ | 1 nano instance、スリープなし |
Render の無料枠詳細
Renderは無料枠が充実しているため、個人開発やプロトタイプに人気のサービスです。
Web Services
| 項目 | 内容 |
|---|---|
| インスタンス数 | 無制限 |
| 稼働時間 | 750時間/月(全サービス合計) |
| メモリ | 512MB |
| CPU | 0.1 CPU |
| 帯域 | 100GB/月 |
| スリープ | 15分無アクセスでスリープ |
PostgreSQL
| 項目 | 内容 |
|---|---|
| 利用期間 | 90日間のみ |
| ストレージ | 1GB |
| 期限後 | 自動削除 |
RenderのPostgreSQLは90日間の期限があり、期限切れ後はデータベースが自動削除されます。長期運用にはStarter以上のプラン($7/月〜)が必要です。
課金が発生するケース
- 750時間を超えた場合
- スリープを無効にしたい場合(Starter $7/月〜)
- PostgreSQLを90日以降も使う場合
- スペックを上げる場合
設定チェックリスト
- ビルドイメージ Ubuntu Noble 24.04 に更新済み
- netlify.toml ビルドコマンドとNode.jsバージョンを指定済み
- .nvmrc Node.jsバージョンを指定済み
- Prerendering 不要な場合は無効化済み
- デプロイ確認 設定変更後にデプロイが正常に完了
参考文献
- Netlify Build image selection - Netlify Docs
- Managing build dependencies - Netlify Docs
- File-based configuration - netlify.toml - Netlify Docs
- Prerendering - Netlify Docs
まとめ
Netlifyのビルドイメージ更新警告は、管理画面からUbuntu Noble 24.04を選択するだけで解消できます。合わせて netlify.toml と .nvmrc でNode.jsバージョンを明示的に指定し、不要なPrerenderingを無効化することで、安定した運用環境を維持できます。
ローカルビルド + CLIデプロイの場合はビルドイメージの影響を直接受けませんが、設定を整えておくことで将来のワークフロー変更にも対応しやすくなります。