Linux向けビルド(Docker使用)
Windows、macOS、LinuxからDocker経由でLinux向けのビルドを実行する方法
📋 前提条件
すべてのプラットフォーム共通
- Docker Desktop または Docker Engine
- pnpm (v10.2.0以上)
- 8GB以上のRAM(16GB推奨)
- 20GB以上のディスク空き容量
プラットフォーム別
Windows
- Windows 10/11 (64-bit)
- WSL 2(推奨)
- PowerShell 5.1以上
macOS
- macOS 10.15以上
- Bash
- Docker Desktop for Mac
Linux
- 64-bit Linux distribution
- Docker Engine 20.10以上
- Bash
🚀 使用方法
Windows環境でのビルド
# プロジェクトルートで実行
pnpm run build:tauri:linux-x64 # x86_64 Linux
pnpm run build:tauri:linux-arm64 # ARM64 Linux
# または直接スクリプトを実行
pwsh .\scripts\build-linux-docker.ps1 -Target x64
pwsh .\scripts\build-linux-docker.ps1 -Target arm64
macOS / Linux環境でのビルド
# プロジェクトルートで実行
bash scripts/build-linux-docker.sh x64 # x86_64 Linux
bash scripts/build-linux-docker.sh arm64 # ARM64 Linux
# または app ディレクトリから
pnpm run build:tauri:linux-docker-x64
pnpm run build:tauri:linux-docker-arm64
📦 生成される成果物
デフォルト(AppImage無効)
ビルド成果物は以下のディレクトリに生成されます:
app/src-tauri/target/
├── x86_64-unknown-linux-gnu/release/bundle/
│ ├── deb/ # Debian/Ubuntuパッケージ
│ └── rpm/ # Red Hat/Fedoraパッケージ
│
└── aarch64-unknown-linux-gnu/release/bundle/
├── deb/
└── rpm/
AppImage有効時
# Windows
pwsh .\scripts\build-linux-docker.ps1 -Target x64 -IncludeAppImage
# macOS/Linux
INCLUDE_APPIMAGE=true bash scripts/build-linux-docker.sh x64
上記に加えて appimage/ ディレクトリにAppImageが生成されます。
注意: AppImageのビルドにはFUSEが必要で、Docker環境では制限があります。
⚙️ ビルド設定のカスタマイズ
.env ファイルでビルド設定をカスタマイズできます:
# Docker Build Settings
BUILD_CPUS=4 # 使用するCPUコア数
BUILD_MEMORY=8g # メモリ制限
CARGO_BUILD_JOBS=4 # Cargoの並列ジョブ数
MAKEFLAGS=-j4 # Makeの並列度
INCLUDE_APPIMAGE=false # AppImageを含めるか
パフォーマンス最適化
高性能マシン向け設定
BUILD_CPUS=12
BUILD_MEMORY=16g
CARGO_BUILD_JOBS=12
MAKEFLAGS=-j12
一般的なマシン向け設定
BUILD_CPUS=4
BUILD_MEMORY=8g
CARGO_BUILD_JOBS=4
MAKEFLAGS=-j4
⚙️ 内部動作
- Dockerイメージの構築
- Rust + Debian Bookworm ベース
- Tauri の依存関係(WebKit2GTK、GTK3等)をインストール
- Node.js と pnpm をインストール
- Docker コンテナ内で Tauri ビルドを実行
- プロジェクトディレクトリをマウント
- ターゲットアーキテクチャを指定してビルド
- Dockerボリュームを使用したキャッシュ管理
- 成果物をホスト側のディレクトリに出力
🔧 トラブルシューティング
Dockerが見つからない(Windows)
❌ エラー: Docker Desktop が起動していません。
解決方法: Docker Desktopを起動してから、再度実行してください。
メモリ不足
症状: ビルド中にメモリエラー
解決方法:
.envでメモリ制限を増やす- Docker Desktopのリソース設定でメモリを増やす(Settings → Resources → Memory)
- 並列ビルド数を減らす(
BUILD_CPUSを減らす)
ビルドが遅い
解決方法:
.envで並列度を増やす- Docker Desktopのリソース(CPU、メモリ)を増やす
- SSDを使用する
- キャッシュボリュームを活用する
ビルドキャッシュのクリア
Windows
# x86_64キャッシュをクリア
docker volume rm dropwebp-cargo-cache-linux-amd64
docker volume rm dropwebp-pnpm-cache-linux-amd64
docker volume rm dropwebp-target-cache-linux-amd64
# ARM64キャッシュをクリア
docker volume rm dropwebp-cargo-cache-linux-arm64
docker volume rm dropwebp-pnpm-cache-linux-arm64
docker volume rm dropwebp-target-cache-linux-arm64
macOS / Linux
# x86_64キャッシュをクリア
docker volume rm dropwebp-cargo-cache-linux-amd64
docker volume rm dropwebp-pnpm-cache-linux-amd64
docker volume rm dropwebp-target-cache-linux-amd64
# ARM64キャッシュをクリア
docker volume rm dropwebp-cargo-cache-linux-arm64
docker volume rm dropwebp-pnpm-cache-linux-arm64
docker volume rm dropwebp-target-cache-linux-arm64
Docker イメージのリビルド
# x86_64用
docker build -f Dockerfile.linux-x64 -t dropwebp-linux-x64-builder --no-cache .
# ARM64用
docker build -f Dockerfile.linux-arm64 -t dropwebp-linux-arm64-builder --no-cache .
📝 注意事項
- 初回ビルドは Docker イメージのビルドとダウンロードで時間がかかります(20-40分程度)
- 2回目以降はキャッシュが利用されるため高速です(5-15分程度)
- ARM64 向けビルドは x86_64 向けよりも時間がかかる場合があります
- Windows環境ではWSL 2を使用することを推奨します
🎯 推奨配布形式
- .deb: Debian/Ubuntu系ユーザー向け(デフォルトで生成)
- .rpm: Red Hat/Fedora系ユーザー向け(デフォルトで生成)
- AppImage: 配布推奨(すべてのLinuxディストリビューションで動作)※オプション
📚 関連ドキュメント
- ルートディレクトリのDOCKER_BUILD.md - 全プラットフォーム対応の詳細ガイド
- ルートディレクトリのDOCKER_BUILD_WINDOWS.md - Windows固有の詳細手順