ウォームアップ
開発環境では、IDE ウォームアップフェーズ(IDE がインデックスを構築し、プロジェクトの依存関係の解決などのバックグラウンド処理を実行する期間)を省くことで、開発速度を大幅に向上させることができます。これらのルーチンをすべて開発環境ウォームアップに組み込み、スケジュールに従って実行することができます。ウォームアップの結果、ウォームアップスナップショット(Docker ボリューム)が作成され、開発環境にマウントされます。ウォームアップは定期的に実行してください。インデックスデータが最新であればあるほど、開発環境の準備が早くなります。
開発環境を作成するときに、ユーザーは開始するウォームアップスナップショットを選択できるようになります。
ウォームアップを設定する
ウォームアップを構成するには、開発環境テンプレートの起動パフォーマンス | ウォームアップセクションを使用します。
ここに:
インスタンスタイプ – ウォームアップスナップショットの作成に使用される開発環境に割り当てられるリソース。ウォームアップ開発環境ではパフォーマンスがそれほど重要ではないため、ユーザー開発環境よりも小さいインスタンスタイプを選択できます。
IDE のプロジェクトインデックスを作成する – 有効にすると、ウォームアップによってテンプレートで指定された IDE のプロジェクトインデックスが作成されます。重要:
このオプションを無効にする場合は、スクリプトにウォームアップスクリプトを必ず用意してください。そうしないと、ウォームアップが無駄になります。
テンプレートに複数のリポジトリがある場合、ウォームアップによってそれらすべてのリポジトリのインデックスが構築されます。
VS Code/Cursor のプロジェクトインデックスの作成はサポートされていません。
カスタムスクリプトを実行する – 有効にすると、ウォームアップ時にスクリプトで指定されたカスタムシェルスクリプトが実行されます。たとえば、これを使用して
./gradlew buildでプロジェクトをビルドしたり、IDE を設定したりできます。重要:スクリプトでは、テンプレートで定義された環境変数と事前定義された環境変数を使用できます。
このスクリプトはユーザーなしで実行されるため、個人のパラメーター(シークレット)にはアクセスできません。ウォームアップに機密データを提供する必要がある場合は、ウォームアップ開発環境に秘密を提供するを参照してください。
追加のツールをインストールするスクリプトを使用しないでください (例:
apt getを使用)。このデータはスナップショットに保存されません。ウォームアップでは、まず IDE インデックスを構築し、その後でのみスクリプトを実行します。
スクリプトで
dockerコマンドを実行する場合は、必ず最初にcanvas await-dockerdを実行します。例:canvas await-dockerd docker login ...このコマンドは、Docker デーモンがコマンドを受け入れる準備ができていることを確認します。
スクリプトの作業ディレクトリ –スクリプトが実行される作業ディレクトリへのパス。このパスは
/mnt/jetbrains/workディレクトリからの相対パスです。指定されていない場合、スクリプトは/mnt/jetbrains/workで実行されます。ディレクトリ構造を参照パラメーター – ウォームアップで使用できる環境変数。ユーザー認証情報やアクセストークンなどの機密データをウォームアップ環境に提供するために使用します。詳細
実行タイムアウト (分) – CodeCanvas は、指定された時間よりも長くかかる場合はウォームアップを停止し、失敗したと見なします。
スケジュール通りにウォームアップを実行する – 有効にすると、ウォームアップは Cron トリガーで指定されたスケジュールで実行されます。スケジュールは crontab 形式(CodeCanvas サーバー OS のタイムゾーン)で指定します。例:
0 1 * * 1-5は週末を除き、毎日午前 1 時にウォームアップを実行します。詳細リポジトリに変更がない場合はスキップ – 有効にすると、前回のウォームアップ以降に Git リポジトリに変更がない場合、ウォームアップは実行されません。テンプレートに複数のリポジトリがある場合は、少なくとも 1 つのリポジトリに変更がある場合にのみウォームアップが実行されます。
スケジュールを無効にする場合 – ウォームアップが指定回数実行されても失敗する場合、または結果のスナップショットが指定時間使用されていない場合に、ウォームアップのスケジュールを自動的に無効にすることができます。詳細
ウォームアップの仕組み
ウォームアップがトリガーされると、CodeCanvas はテンプレート設定(指定されたコンテナーイメージ、環境変数など)に基づいて開発環境を作成します。重要: 環境を特定のユーザー向けにカスタマイズすることはできません。つまり、個人パラメーターは使用できません。ウォームアップに機密データを提供する必要がある場合は、ウォームアップパラメーターを使用してください。
このウォームアップ環境では、CodeCanvas は次の処理を実行します。
プロジェクトのソースコードをチェックアウトします。
スクリプトフィールドにカスタムシェルスクリプトを指定した場合、そのスクリプトを実行します。スクリプトがステータスコード 0 で正常に終了した場合にのみ、ウォームアップは次のステップに進みます。
テンプレートで指定された IDE を実行し、プロジェクトインデックスを構築します。
プロジェクトインデックスは IDE ごとに固有であり、多くの場合 IDE のバージョンごとに異なります。ウォームアップでは、CodeCanvas はテンプレートの IDE バージョンパラメーターで指定された IDE バージョンを使用します。デフォルトの場合は、ウォームアップでデフォルトの IDE バージョンのインデックスが作成されます。
ウォームアップでプロジェクトインデックスを構築したくない場合は、IDE のプロジェクトインデックスを作成するチェックボックスをオフにします。
ファイルシステムのスナップショット (ウォームアップスナップショット) を保存します。
ウォームアップのスナップショット
ウォームアップスナップショットは、マウントされていない開発環境ストレージ(Docker ボリューム)です。作業ディレクトリ、プロジェクトインデックスを含むユーザーのホームディレクトリ、CodeCanvas システムデータを含むディレクトリが含まれます。ディレクトリ構造の詳細
その他のデータはすべて破棄されます。そのため、ウォームアップ中に追加のツール(例: apt get)をインストールしないでください。カスタムツールが必要な場合は、代わりにカスタム開発環境イメージを使用してください。
重要なメモ:
CodeCanvas は、IDE と Git ブランチの組み合わせごとに、最新のウォームアップスナップショットのみを保存します。IDE のバージョンは考慮されません。例: プロジェクトに 2 つのブランチ(
mainとfeature-branch)があるとします。一部の開発者が JetBrains Rider を使用し、一部の開発者が IntelliJ IDEA を使用しているとします。この場合、スナップショットは最大 4 つ(main+ Rider、main+ IDEA、feature-branch+ Rider、feature-branch+ IDEA)になります。同じスナップショットから開始された開発環境は互いに独立しており、状態を共有することはありません。
スナップショットの取得方法はインフラストラクチャによって異なります。例: AWS では、開発環境のディスクとスナップショットは EBS(英語) に基づいています。
名前空間で利用可能なウォームアップスナップショットを表示するには
ヘッダーナビゲーションで名前空間を選択し、必要な名前空間を選択します。
サイドバーの名前空間メニューで、ウォームアップスナップショットを選択します。
ウォームアップスナップショットを削除するには
ヘッダーナビゲーションで名前空間を選択し、必要な名前空間を選択します。
サイドバーの名前空間メニューで、ウォームアップスナップショットを選択します。
スナップショットを見つけてクリック

消去。
ウォームアップを開始する
ウォームアップをトリガーする方法は 2 つあります。CodeCanvas UI で手動でトリガーする方法と、スケジュールによってトリガーする方法です。
ヘッダーナビゲーションで名前空間を選択し、必要な名前空間を選択します。
サイドバーの名前空間メニューで、ウォームアップスナップショットを選択します。
新しいウォームアップスナップショットをクリックします。
ダイアログで、必要な開発環境テンプレートとリポジトリブランチを指定し、作成をクリックします。
開発環境テンプレートの Cron トリガーパラメーターは、ウォームアップスケジュールを指定します。ウォームアップ中、CodeCanvas はテンプレートで指定された環境設定(ブランチを含む)を使用します。
スケジュールを指定する際は、crontab 形式(MIN HOUR DAY MONTH DAYOFWEEK)を使用してください。例: 毎週金曜日の 23:59 にウォームアップを実行するには、59 23 * * FRI と指定します。時刻は CodeCanvas サーバー OS のタイムゾーンで設定されます。
トリガーをもう 1 つ追加するには、トリガーの追加をクリックしてスケジュールを指定します。
ウォームアップスケジュールの自動無効化
リソースコストを削減するために、ウォームアップスケジュールを自動的に無効にすることができます。開発環境テンプレートの起動パフォーマンス | ウォームアップセクションで、スケジュールを無効にする場合の以下のオプションを使用します。
ウォームアップ失敗 – 指定された回数のウォームアップ実行が失敗した後、ウォームアップのスケジュールを無効にします。デフォルト:
3ウォームアップスナップショットは使用されていません – 指定された時間数の間、スナップショットが使用されなかった場合、ウォームアップスケジュールを無効にします。デフォルト:
72時間
スケジュールを無効にすると、スナップショットは自動更新されなくなります。ただし、ウォームアップは手動で実行できます。
スケジュールが無効になったことを通知するには、ウォームアップスケジュールが無効になっていますイベントをサブスクライブしてください。詳細については、通知を参照してください。
ウォームアップ開発環境に秘密を提供する
プロジェクトでは、プライベートリポジトリから依存関係を取得したり、データベースにアクセスしたりするために、ユーザー認証情報やアクセストークンといった機密データが必要になる場合があります。個々のユーザー開発環境では個人用ユーザーパラメーターを使用できますが、ウォームアップ開発環境でもこれらのデータは作業に必要です。必要なウォームアップパラメーターは名前空間レベルで定義し、ウォームアップ設定で対応する環境変数に割り当てます。
ウォームアップパラメーターを定義するには
ヘッダーナビゲーションで名前空間を選択し、必要な名前空間を選択します。
サイドバーの名前空間メニューで、設定を選択し、次にウォームアップパラメーターを選択します。
新規パラメーターをクリックします。
指定
キー : パラメーター名。この名前は、ウォームアップ設定でこのパラメーターを参照するために使用します。
値 : パラメーター値。
注:
パラメーターは暗号化された形式で保存されます。
パラメーターはウォームアップ中にのみ使用され、ユーザーはアクセスできません。
パラメーターは特定の名前空間のスコープ内でのみ存在します。そのため、ある名前空間でパラメーターを作成した場合、他の名前空間では使用できません。
パラメーターキーは名前空間内で一意である必要があります。
キーは 128 文字以下である必要があり、英数字 (
[a-z]、[A-Z]、[0-9])、ダッシュ (-)、またはアンダースコア (_) のみを含めることができます。キーでは大文字と小文字が区別されません。
シークレットまたはパラメーターの値の最大サイズは 30KB です。
テンプレートにパラメーターを追加するには
テンプレート設定で、起動パフォーマンスセクションを開きます。
ウォームアップ設定のパラメーターで、パラメーターの追加をクリックします。
パラメーター設定を指定します:
型 - 変数の型を選択します: 変数 (環境変数) またはファイル。
名前 – 環境変数の名前、またはウォームアップ環境上のファイルへの絶対パス。
ウォームアップパラメーター –名前空間レベルで定義されたウォームアップパラメーターへの参照。
カスタムブランチのウォームアップスナップショットを作成する
デフォルトでは、開発環境テンプレートで指定されたブランチに対してウォームアップスナップショットが作成されます。別のブランチのスナップショットを作成する必要がある場合は、手動で作成できます。
ヘッダーナビゲーションで名前空間を選択し、必要な名前空間を選択します。
サイドバーの名前空間メニューで、ウォームアップスナップショットを選択します。
新しいウォームアップスナップショットをクリックします。
ダイアログで:
必要な開発環境テンプレートを指定する
ブランチオーバーライドを追加をクリックし、ブランチを指定します。複数のリポジトリがある場合は、リポジトリごとにカスタムブランチを指定できます。
作成をクリックします。
関連ページ:
開発環境テンプレートを作成する
CodeCanvas では、開発環境は名前空間管理者によって設定されます。開発者が開発環境でプロジェクトに取り組めるようにするには、名前空間管理者が開発環境テンプレートを作成する必要があります。開発環境テンプレート:開発環境テンプレートは、環境を作成するための基盤として使用される事前定義された設定のセットです。テンプレートには、開発環境イメージ、IDE、リソース、Git リポジトリとブランチ、その他の設定が定義されています。ユーザーは開発環境を作成するときに、自分のアカウントで利用可能なテンプ...
IDE とプラグイン
CodeCanvas を使用すると、ユーザーの開発環境に合わせて IDE を柔軟に構成できます。IDE は、IDE の種類(JetBrains IDE(IntelliJ IDEA、PyCharm、WebStorm など)または VS Code ベースの IDE(VS Code や Cursor など))に応じて構成が異なります。JetBrains IDE:IDE バージョンを設定する開発環境テンプレートを作成する際に、IDE とそのバージョンを指定できます。IDE バージョンとしてデフォルトを指...
開発環境を停止する
プロジェクトの作業が完了したら、開発環境を停止できます。開発環境を停止すると、CodeCanvas は環境の正常なシャットダウンを実行し、リソースを解放します。また、開発環境は一定時間(デフォルトでは 30 分)操作が行われないと自動的に停止されます。停止した開発環境のデータはどうなるか:CodeCanvas は、以下のディレクトリ内のデータを保持したまま開発環境ストレージをアンマウントします:(作業ディレクトリ)、(ユーザーのホームディレクトリを含む)、(Docker データ)。その他のデー...
コンテナーイメージ
CodeCanvas の開発環境は Docker コンテナーで実行されます。開発に必要なツールチェーン、ランタイム、その他のソフトウェアは Docker イメージで定義されています。テンプレートを作成する際には、CodeCanvas が提供するデフォルトのイメージを使用するか、カスタムイメージを指定できます。デフォルトの Docker イメージ:Docker イメージを指定しない場合、CodeCanvas はデフォルトのイメージを使用します。デフォルトのイメージは Ubuntu OS をベース...
個人パラメーター (シークレット)
プロジェクトでは、バイナリ依存関係をダウンロードするためのユーザー認証情報、サードパーティサービスにアクセスするための API キー、その他のシークレットなど、機密データが必要になる場合があります。CodeCanvas を使用すると、そのようなデータを環境変数やファイルとして開発環境に提供できます。仕組み: 名前空間管理者は、開発環境テンプレートで必要な環境変数またはファイル(つまり、パラメーター)を定義します。詳細、開発者は、CodeCanvas の個人ユーザーストレージ内のパラメーターの値を定...
開発環境の起動を高速化
通常、開発環境の起動にはしばらく時間がかかりますが、次のものを使用することでプロセスを大幅に高速化できます。ウォームアップ – IDE インデックス、プロジェクトの依存関係、その他のデータを使用して環境スナップショットを事前に作成します。詳細、スタンバイプール – すぐに使用できる、事前に作成された環境のプールを維持します。スタンバイプールでは、初期化直後に環境を停止できるため、起動時間をわずかに長くすることでプールのコストを削減できます。詳細、もちろん、ウォームアッププールとスタンバイプールの両方...