メインコンテンツへスキップ

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 TemplatesはDroid Computersに置き換えられました。Cloud Templatesは引き続きサポートされていますが、安定性のため切り替えを強くお勧めします。
Cloudテンプレートを使えば、「私のマシンでは動く」問題に悩まされることなく、どこでもコーディングできます。各テンプレートは事前設定済みの環境で、クラウド上に存在し、数秒で起動し、セットアップコマンドを実行するようにカスタマイズできます。

なぜcloudテンプレートを使うのか?

メリットあなたにとっての意味
セットアップ不要セッションを開いてすぐにコーディング開始。ローカルインストールやVM管理は不要です。
一貫性すべてのチームメイト(そしてCIジョブ)が_全く_同じ環境で実行されます。
速度重いビルドは強力なクラウドCPUで実行。あなたのノートパソコンのファンは静かなままです。
分離実験は使い捨てのテンプレート内で行われ、ローカルマシンをクリーンに保ちます。
コラボレーションテンプレートリンクを共有すれば、レビュアーがコードとポートが既に実行されている_ライブ_環境にすぐにアクセスできます。

インストールと使用方法

クラウドテンプレートは、クラウド上に存在する完全に設定された、オンデマンドの開発環境です。クラウドテンプレートは、ローカルで期待するのと同じツールと依存関係を提供するため、Factoryから直接コードのビルド、テスト、実行を行うことができます。
クラウドテンプレートを最大限活用するには、テンプレート作成時に環境変数とセットアップスクリプトを設定します。セットアップスクリプトは依存関係をインストールし、開発環境を自動的に準備するため、すべてのチームメンバーが同一のセットアップを利用できます。

システム要件

  • Factoryで有効化されたリポジトリ
  • クラウドテンプレートを作成するためのユーザーロール以上の権限
1

Cloud Templates設定を開く

  1. Factoryで左サイドバーのSettingsアイコンをクリックします。
  2. Cloud Templatesを選択します。
2

新しいCloud Templateを作成

  1. Create Templateをクリックします。
  2. 使用するリポジトリを入力します。
  3. テンプレートにわかりやすい名前(例: “frontend-template”)を付けます。
  4. (任意)テンプレート初期化時に実行するセットアップスクリプトを設定します。
  5. Createをクリックします。
Factoryがリポジトリをクローンして環境を準備します。大規模なプロジェクトでは数分かかる場合があります。
3

テンプレートの準備完了を確認

新しいテンプレートがステータス表示付きで一覧に表示されます。Readyと表示されたら、どのセッションからでも使用できます。

セッション内でクラウドテンプレートを起動する

1

セッションを開く、または開始

通常どおり任意のFactoryセッションに参加します。
2

Cloud Machineに接続

  1. セッション開始ページでMachine Connectionボタンをクリックします。
  2. Remoteタブを選択します。
  3. 先ほど作成したテンプレートを選択します。
  4. Factoryがクラウドテンプレートをセッションに接続します。
Factoryのセッション設定UIでクラウドテンプレートを接続するフロー
3

接続を確認

右上のプロフィールドロップダウンの横に、緑色のインジケーターとリモート作業ディレクトリが表示されます。これでクラウドテンプレートを操作しています。

日常的な使用方法

CLIコマンドを実行

Terminalツールキットを使用して、次のようなコマンドを実行します:
npm run dev
pytest
git status
出力はチャットとログにライブでストリーミングされます。

ファイルを編集・保存

リポジトリのファイルを開き、変更して保存します。 ファイルはクラウドテンプレートに保持され、準備ができたら上流にコミットできます。

自動保存の制御

自動保存はデフォルトで無効です。ライブファイル同期を使用したい場合は、Session Settingsパネルから有効にします。

セットアップスクリプト

セットアップスクリプトは、Factoryがテンプレート作成時に実行するシェルスクリプトです。リポジトリがクローンされた後、テンプレートがアクティブ化される前に実行されます。この機能を使用して、テンプレートをセットアップし、droidがあなたのコードベースで作業するためのツールを提供してください。

セットアップスクリプトの定義方法

  1. テンプレート作成のモーダルで、「Setup Script (Optional)」セクションに初期化スクリプトを追加します。必要なコマンドをすべて含む複数行のbashスクリプトを記述できます。
  2. 送信します。スクリプトは提供された通りにリポジトリルートで実行されます。厳密なエラーハンドリングが必要な場合は、スクリプトの先頭に set -euo pipefail を追加してください。スクリプトの失敗はビルドを停止します。
  3. スクリプトは非対話的で冪等性を保つようにしてください。安全に再実行できるコマンドを記述してください。
  4. 何か失敗した場合は、ビルドログを確認してスクリプト実行の詳細な出力を確認してください。
例: Node.js (Next.js):
#!/usr/bin/env bash
set -euo pipefail

npm ci
npm run build
PNPM monorepo:
#!/usr/bin/env bash
set -euo pipefail

pnpm -w i
pnpm -w build
Python:
#!/usr/bin/env bash
set -euo pipefail

pip install -r requirements.txt
pytest -q
多言語プロジェクト:
#!/usr/bin/env bash
set -euo pipefail

# Install Node.js dependencies
npm ci

# Install Python dependencies
pip install -r requirements.txt

# Run setup script
bash ./scripts/setup.sh
内部で何が起こるか:
  • スクリプトは、リポジトリのクローン後、ビルドコンテナ内のリポジトリルートで実行されます。
  • テンプレート設定で指定された環境変数は、スクリプト実行時に利用できます。
  • エラーは明確に表示され(例: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 cinpm install ではない)、pnpm -w i、または pip install -r requirements.txt を使用
エラーハンドリングを追加最初の失敗でビルドを停止し、デバッグ時間を節約する。適切なエラーハンドリングのためにスクリプトを #!/usr/bin/env bashset -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 devpytest)を含む AGENTS.md ファイルを追加。Droid がこのファイルを自動的に読み取ります

トラブルシューティング

最もスムーズなクラウドテンプレートでも問題が発生することがあります。このセクションでは、最も一般的なクラウドテンプレートの問題に対する最も迅速な修正方法を説明します。

クイックリファレンス

カテゴリ典型的な症状
ワークスペース作成「プロビジョニング」が永続、クローンエラー、セットアップスクリプト失敗
接続セッションからアタッチできない、ペアリングスピナーが停止しない、「マシン利用不可」
パフォーマンスリビルドが遅い、ターミナルの高レイテンシ、エディターの動作が重い
Devcontainerビルドエラー、「command not found」、ポートにアクセスできない
一般的な使用Gitが認証情報を要求、ディスク容量不足、アクセス拒否

ワークスペース作成の問題

診断
  • Gitの終了コード付きで*“clone failed”*エラートーストが表示される
  • プライベートリポジトリですか?OAuthスコープが不足していませんか?
解決
  1. リポジトリが有効化され、IntegrationsでConnectedと表示されていることを確認します
  2. 求められた場合はOAuthトークンを更新します

接続の問題

1

マシンセレクターを確認

セッションでCPUアイコンをクリックし、Cloud Machineが選択されていることを確認します。 Local Machineと表示される場合は、Cloud Machineに切り替えてテンプレートを選択します。
2

ブラウザとネットワーク

  • ChromeまたはEdgeを使用します(他のブラウザではWebSocketアップグレードがブロックされる場合があります)。
  • WebSocketフィルタリングを切り分けるため、VPN/プロキシを無効にします。
  • セッションタブを再読み込みします(⌘R / Ctrl-R)。

パフォーマンスと速度

症状修正方法
リビルドが5分以上かかる.dockerignorenode_modules*.pyc、ビルド出力に対して.dockerignoreを追加する• より軽量なベースイメージを使用(例:alpine)
ターミナルのレイテンシ重いJSを使用している未使用のブラウザタブを閉じる• ローカル帯域幅を確認(5 Mbps以上推奨)• リアルタイムスペルチェック拡張機能を一時停止
エディターの遅延必要でない限り開発ツール(nodemonwebpack --watch)のファイルウォッチャーを無効化• 自動保存はコラボレーション時のみ使用

一般的な使用上のトラブル

問題解決方法
Gitが認証情報を要求するリポジトリ統合が接続されていることを確認してください。クラウドテンプレートはHTTPSトークンを自動的に注入します。
ディスククォータ超過パッケージキャッシュ(npm cache clean --forcepip cache purge)をクリア、大きなビルドアーティファクトを削除、またはテンプレートをリビルド。
ファイル保存でアクセス拒否ファイルがリポジトリテンプレート外にあります。/workspaces/<repo>/内に保存してください。
グローバルパッケージをインストールできないnpm install -gまたはpip install --userを使用。まだブロックされる場合は、postCreateCommandにコマンドを追加。
リビルド後に履歴が失われる/workspaces外のものはリビルド中にクリアされます。重要なスクリプトをコミットするか、リポジトリ内に保存してください。
クイックリビルドで問題の80%が解決します。迷ったときは躊躇せずリビルドをクリックしてください。