Cloudテンプレートを使えば、「私のマシンでは動く」問題に悩まされることなく、どこでもコーディングできます。各テンプレートは事前設定済みの環境で、クラウド上に存在し、数秒で起動し、セットアップコマンドを実行するようにカスタマイズできます。Documentation Index
Fetch the complete documentation index at: https://factory-changelog-may26.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
なぜcloudテンプレートを使うのか?
| メリット | あなたにとっての意味 |
|---|---|
| セットアップ不要 | セッションを開いてすぐにコーディング開始。ローカルインストールやVM管理は不要です。 |
| 一貫性 | すべてのチームメイト(そしてCIジョブ)が_全く_同じ環境で実行されます。 |
| 速度 | 重いビルドは強力なクラウドCPUで実行。あなたのノートパソコンのファンは静かなままです。 |
| 分離 | 実験は使い捨てのテンプレート内で行われ、ローカルマシンをクリーンに保ちます。 |
| コラボレーション | テンプレートリンクを共有すれば、レビュアーがコードとポートが既に実行されている_ライブ_環境にすぐにアクセスできます。 |
インストールと使用方法
クラウドテンプレートは、クラウド上に存在する完全に設定された、オンデマンドの開発環境です。クラウドテンプレートは、ローカルで期待するのと同じツールと依存関係を提供するため、Factoryから直接コードのビルド、テスト、実行を行うことができます。クラウドテンプレートを最大限活用するには、テンプレート作成時に環境変数とセットアップスクリプトを設定します。セットアップスクリプトは依存関係をインストールし、開発環境を自動的に準備するため、すべてのチームメンバーが同一のセットアップを利用できます。
システム要件
- Factoryで有効化されたリポジトリ
- クラウドテンプレートを作成するためのユーザーロール以上の権限
新しいCloud Templateを作成
- Create Templateをクリックします。
- 使用するリポジトリを入力します。
- テンプレートにわかりやすい名前(例: “frontend-template”)を付けます。
- (任意)テンプレート初期化時に実行するセットアップスクリプトを設定します。
- Createをクリックします。
Factoryがリポジトリをクローンして環境を準備します。大規模なプロジェクトでは数分かかる場合があります。
セッション内でクラウドテンプレートを起動する
Cloud Machineに接続
- セッション開始ページでMachine Connectionボタンをクリックします。
- Remoteタブを選択します。
- 先ほど作成したテンプレートを選択します。
- Factoryがクラウドテンプレートをセッションに接続します。

日常的な使用方法
CLIコマンドを実行
Terminalツールキットを使用して、次のようなコマンドを実行します:
npm run dev pytest git status出力はチャットとログにライブでストリーミングされます。
ファイルを編集・保存
リポジトリのファイルを開き、変更して保存します。
ファイルはクラウドテンプレートに保持され、準備ができたら上流にコミットできます。
自動保存の制御
自動保存はデフォルトで無効です。ライブファイル同期を使用したい場合は、Session Settingsパネルから有効にします。
セットアップスクリプト
セットアップスクリプトは、Factoryがテンプレート作成時に実行するシェルスクリプトです。リポジトリがクローンされた後、テンプレートがアクティブ化される前に実行されます。この機能を使用して、テンプレートをセットアップし、droidがあなたのコードベースで作業するためのツールを提供してください。セットアップスクリプトの定義方法
- テンプレート作成のモーダルで、「Setup Script (Optional)」セクションに初期化スクリプトを追加します。必要なコマンドをすべて含む複数行のbashスクリプトを記述できます。
- 送信します。スクリプトは提供された通りにリポジトリルートで実行されます。厳密なエラーハンドリングが必要な場合は、スクリプトの先頭に
set -euo pipefailを追加してください。スクリプトの失敗はビルドを停止します。 - スクリプトは非対話的で冪等性を保つようにしてください。安全に再実行できるコマンドを記述してください。
- 何か失敗した場合は、ビルドログを確認してスクリプト実行の詳細な出力を確認してください。
- スクリプトは、リポジトリのクローン後、ビルドコンテナ内のリポジトリルートで実行されます。
- テンプレート設定で指定された環境変数は、スクリプト実行時に利用できます。
- エラーは明確に表示され(例:
Setup script failed: ...)、迅速な修正が可能です。
セットアップスクリプトのトラブルシューティングのヒント
| 問題 | 修正方法 |
|---|---|
| セットアップが「Setup script failed: …」で失敗する | ビルドログで具体的なエラーメッセージを確認してください。ローカルでスクリプトを実行してデバッグし、エラーハンドリングを追加し、非対話的フラグ(例:-y)を使用してから、再試行してください。 |
| コマンドが見つからない | スクリプトの早い段階で必要なツールをインストールするか、ベースUbuntuイメージで利用可能であることを確認してください。 |
| Permission denied (scripts) | スクリプトを実行可能にする(chmod +x ./scripts/setup.sh)か、インタープリター経由で呼び出してください(bash ./scripts/setup.sh)。 |
| 環境変数が見つからない | Environment Variablesセクションで追加し、$VAR として参照してください。スクリプト内でシークレットをechoすることは避けてください。 |
| 長いビルド | スクリプトは最小限に保ってください。npm install より npm ci のようなキャッシュされたインストールを優先し、重い非必須作業は避けてください。 |
| パス/ファイルが見つからない | スクリプトはリポジトリルートで実行されます。相対パスとクローン後にファイルが存在することを確認してください。 |
ベストプラクティス
クラウドテンプレートを使用すると、一貫性のある本番環境対応の開発環境を数秒で立ち上げることができます。以下は、テンプレートを高速で予測可能、かつチームに優しく保つための実証済みのプラクティスです。スマートセットアップスクリプトのプラクティス
| プラクティス | 重要な理由 | 実行方法 |
|---|---|---|
| 依存関係順にコマンドを配置 | 後のコマンドは前のインストールに依存する可能性がある。 | パッケージインストールを最初に実行:npm ci && npm run build または pip install -r requirements.txt && pytest -q |
| 正確なパッケージマネージャーを使用 | 一貫したロックファイルがバージョンドリフトを防ぐ。 | 再現可能なビルドのために npm ci(npm install ではない)、pnpm -w i、または pip install -r requirements.txt を使用 |
| エラーハンドリングを追加 | 最初の失敗でビルドを停止し、デバッグ時間を節約する。 | 適切なエラーハンドリングのためにスクリプトを #!/usr/bin/env bash と set -euo pipefail で開始 |
| スクリプトを早期に実行可能にする | ビルド中の権限エラーを回避する。 | chmod +x ./scripts/setup.sh && bash ./scripts/setup.sh を追加するか、bash ./scripts/setup.sh を直接使用 |
| スクリプトをべき等に保つ | セットアップの再実行で問題が発生しないようにする。 | pip install --no-deps のようなフラグを使用するか、ファイルを作成する前に既存ファイルをチェック |
| 重い処理を最小限に抑える | 長いビルドはテンプレート作成を遅くする。 | 必要最小限のセットアップに集中し、オプションのツールは後で手動インストールに委ねる |
ヒント: セットアップスクリプトをまずローカルでテストしましょう。スクリプトはリポジトリルートでbashで実行され、厳密なエラーハンドリングのためにset -euo pipefailを追加できます。
スケールするワークフローパターン
タスクごとに起動
タスクごとに起動
リモートセッションは使い捨てとして扱います。チケットまたはPRごとに1つ作成し、マージ後にアーカイブします。
メリット: 完全な分離と「自分の環境では動く」ズレの解消。
並列環境
並列環境
複数のブランチをテストする必要がありますか?2つの別々のセッションを起動すれば、プロセスを終了せずにコンテキストを切り替えられます。
チームコラボレーションのヒント
| ヒント | 詳細 |
|---|---|
| テンプレートを明確に命名 | 追跡するリポジトリに従ってテンプレートに名前を付ける。例:repo-name というリポジトリで作業するための repo-name |
| エントリーコマンドを文書化 | 一般的なタスク(npm run dev、pytest)を含む AGENTS.md ファイルを追加。Droid がこのファイルを自動的に読み取ります |
トラブルシューティング
最もスムーズなクラウドテンプレートでも問題が発生することがあります。このセクションでは、最も一般的なクラウドテンプレートの問題に対する最も迅速な修正方法を説明します。クイックリファレンス
| カテゴリ | 典型的な症状 |
|---|---|
| ワークスペース作成 | 「プロビジョニング」が永続、クローンエラー、セットアップスクリプト失敗 |
| 接続 | セッションからアタッチできない、ペアリングスピナーが停止しない、「マシン利用不可」 |
| パフォーマンス | リビルドが遅い、ターミナルの高レイテンシ、エディターの動作が重い |
| Devcontainer | ビルドエラー、「command not found」、ポートにアクセスできない |
| 一般的な使用 | Gitが認証情報を要求、ディスク容量不足、アクセス拒否 |
ワークスペース作成の問題
リポジトリのクローンに失敗
リポジトリのクローンに失敗
診断
- Gitの終了コード付きで*“clone failed”*エラートーストが表示される
- プライベートリポジトリですか?OAuthスコープが不足していませんか?
- リポジトリが有効化され、IntegrationsでConnectedと表示されていることを確認します
- 求められた場合はOAuthトークンを更新します
接続の問題
マシンセレクターを確認
セッションでCPUアイコンをクリックし、Cloud Machineが選択されていることを確認します。
Local Machineと表示される場合は、Cloud Machineに切り替えてテンプレートを選択します。
パフォーマンスと速度
| 症状 | 修正方法 |
|---|---|
| リビルドが5分以上かかる | .dockerignore、node_modules、*.pyc、ビルド出力に対して.dockerignoreを追加する• より軽量なベースイメージを使用(例:alpine) |
| ターミナルのレイテンシ | 重いJSを使用している未使用のブラウザタブを閉じる• ローカル帯域幅を確認(5 Mbps以上推奨)• リアルタイムスペルチェック拡張機能を一時停止 |
| エディターの遅延 | 必要でない限り開発ツール(nodemon、webpack --watch)のファイルウォッチャーを無効化• 自動保存はコラボレーション時のみ使用 |
一般的な使用上のトラブル
| 問題 | 解決方法 |
|---|---|
| Gitが認証情報を要求する | リポジトリ統合が接続されていることを確認してください。クラウドテンプレートはHTTPSトークンを自動的に注入します。 |
| ディスククォータ超過 | パッケージキャッシュ(npm cache clean --force、pip cache purge)をクリア、大きなビルドアーティファクトを削除、またはテンプレートをリビルド。 |
| ファイル保存でアクセス拒否 | ファイルがリポジトリテンプレート外にあります。/workspaces/<repo>/内に保存してください。 |
| グローバルパッケージをインストールできない | npm install -gまたはpip install --userを使用。まだブロックされる場合は、postCreateCommandにコマンドを追加。 |
| リビルド後に履歴が失われる | /workspaces外のものはリビルド中にクリアされます。重要なスクリプトをコミットするか、リポジトリ内に保存してください。 |
クイックリビルドで問題の80%が解決します。迷ったときは躊躇せずリビルドをクリックしてください。
