【Railway】ビルド構成をカスタマイズする
Railway の Nixpacks/Railpack オプションを活用し、ビルドキャッシュやルートディレクトリ、カスタムコマンドなどを設定する方法を解説します。
Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)
ビルド構成をカスタマイズする
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 export4. ルートディレクトリを指定する
モノレポ構成などでアプリがサブディレクトリにある場合、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 体験を構築しましょう!
Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)