ビルド構成をカスタマイズする
Railway の Nixpacks/Railpack オプションを活用し、ビルドキャッシュやルートディレクトリ、カスタムコマンドなどを設定する方法を解説します。
著者: AIイノベーションズ 阿部隼也(X / Twitter)ビルド構成をカスタマイズする
Railway はデフォルトで Nixpacks を使用してアプリケーションをビルドします。Nixpacks はソースを解析して最適なビルドプランを生成するため、ほとんどのプロジェクトは設定不要で動作しますが、キャッシュ最適化や特定ツールのインストールなど細かいチューニングも可能です。
本ガイドでは、
- Railpack でのビルド固定化
- Nixpacks のカスタムオプション
- ビルド/インストールコマンドの変更
- ルートディレクトリやウォッチパス設定
- キャッシュ無効化やプロバイダー指定
など、主要な項目を日本語でまとめます。
1. Railpack でビルド環境を固定化
Railpack は、ビルドに使用する Nixpacks のバージョンをロックし、将来的なビルド変更を避けたい場合に便利です。
# railpack.toml
[build]
nixpacksVersion = "1.7.0"
リポジトリ直下に railpack.toml
を置くだけで、Railway は指定バージョンの Nixpacks を使用します。
2. Nixpacks オプション
.nixpacks.toml
ファイルで追加パッケージのインストールや設定を行えます。
# .nixpacks.toml
[phases.install]
nixPkgs = [ "imagemagick" ]
[phases.build]
cmds = [ "npm run build" ]
主なキー
キー | 説明 |
---|---|
nixPkgs | nixpkgs から追加パッケージをインストール |
cmds | フェーズごとの実行コマンド上書き |
dependsOn | フェーズ間依存関係を明示 |
3. ビルドコマンドをカスタマイズ
ビルド手順を完全に上書きする場合、Settings → Build → Custom Build Command にコマンドを入力します。
例: Next.js で yarn build && yarn export
を実行したい場合
yarn build && yarn export
4. ルートディレクトリを指定する
モノレポ構成などでアプリがサブディレクトリにある場合、Root Directory を設定するとそのパスをビルドコンテキストにできます。
例: apps/web
5. ウォッチパス (Watch Paths)
nixpacks.toml
に watchPaths
を指定すると、該当パス変更時のみ再ビルドが走るため開発体験が向上します。
watchPaths = [ "src", "package.json" ]
6. ビルドキャッシュを無効化
Docker キャッシュや Nix レイヤーキャッシュを無効にしたい場合、Disable Build Layer Caching オプションをオンにします。キャッシュに起因するビルド不整合の切り分けに便利です。
7. ビルドプロバイダーを指定する
Railway では現在 Nixpacks と Railway BuildKit の2プロバイダーをサポートしています。Settings で切り替え可能です。
まとめ
Nixpacks の自動検出は強力ですが、上記オプションを活用することでサイズ削減・速度向上・環境固定など細かなチューニングが可能です。プロジェクト特性に合わせて適切に設定し、快適な CI/CD 体験を構築しましょう!
PR