AIイノベーションズ
Railway/Guides

ビルド構成をカスタマイズする

Railway の Nixpacks/Railpack オプションを活用し、ビルドキャッシュやルートディレクトリ、カスタムコマンドなどを設定する方法を解説します。

著者: AIイノベーションズ 阿部隼也X / Twitter

Railwayはこちら

ビルド構成をカスタマイズする

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" ]

主なキー

キー説明
nixPkgsnixpkgs から追加パッケージをインストール
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.tomlwatchPaths を指定すると、該当パス変更時のみ再ビルドが走るため開発体験が向上します。

watchPaths = [ "src", "package.json" ]

6. ビルドキャッシュを無効化

Docker キャッシュや Nix レイヤーキャッシュを無効にしたい場合、Disable Build Layer Caching オプションをオンにします。キャッシュに起因するビルド不整合の切り分けに便利です。


7. ビルドプロバイダーを指定する

Railway では現在 NixpacksRailway BuildKit の2プロバイダーをサポートしています。Settings で切り替え可能です。


まとめ

Nixpacks の自動検出は強力ですが、上記オプションを活用することでサイズ削減・速度向上・環境固定など細かなチューニングが可能です。プロジェクト特性に合わせて適切に設定し、快適な CI/CD 体験を構築しましょう!

Railwayはこちら

PR