第3章 開発者ワークスペース


Red Hat CodeReady Workspaces は、開発者ワークスペースに、アプリケーションのコード、ビルド、テスト、実行、およびデバッグに必要なすべてのものを提供します。これを許可するために、開発者ワークスペースは 4 つの主なコンポーネントを提供します。

  1. プロジェクトのソースコード。
  2. Web ベースの統合開発環境 (IDE)
  3. 開発者がプロジェクトで作業するために必要なツールの依存関係。
  4. アプリケーションランタイム: アプリケーションの実稼働環境での実行に使用される環境のレプリカ。

Pod は CodeReady Workspaces ワークスペースの各コンポーネントを管理します。そのため、CodeReady Workspaces ワークスペースで実行されているすべてのものは、コンテナー内で実行されます。これにより、CodeReady Workspaces ワークスペースに高い移植性を持たせることができます。

組み込みブラウザーベースの IDE は、CodeReady Workspaces ワークスペースで実行しているすべてについてのアクセスポイントです。これにより、CodeReady Workspaces ワークスペースの共有が簡単になります。

重要

デフォルトでは、1 度に 1 つのワークスペースのみを実行できます。ユーザーが実行できる同時ワークスペースの数を増やすには、checluster にパッチを適用します。

$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=merge \
-p '{ "spec": { "server": { "customCheProperties": { "CHE_LIMITS_USER_WORKSPACES_RUN_COUNT": "-1" } } } }'
Copy to Clipboard Toggle word wrap

詳細は、ユーザーワークスペースの制限について参照してください。

Expand
表3.1 機能および利点
機能従来の IDE ワークスペースRed Hat CodeReady Workspaces ワークスペース

設定およびインストールが必要

Yes

No

組み込みツール

部分的。IDE プラグインには設定が必要です。依存関係にはインストールと設定が必要です。例: JDK、Maven、Node

Yesプラグインは、それらの依存関係を提供します。

アプリケーションランタイムが指定される

No。開発者はこれを個別に管理する必要があります。

Yesアプリケーションランタイムはワークスペースで複製されます。

共有可能

No。または容易ではない

Yes開発者ワークスペースは URL で共有可能です。

バージョン管理可能

No

Yesdevfile はプロジェクトのソースコードと共に存在します。

どこからでもアクセス可能

No。インストールが必要です。

Yesブラウザーのみが必要です。

CodeReady Workspaces ワークスペースを起動するには、以下のオプションを選択できます。

Dashboard を使用して CodeReady Workspaces 2.6 を検出します。

CodeReady Workspaces 2.6 ワークスペースの起動に推奨される方法として devfile を使用します。

CodeReady Workspaces 2.6 ワークスペースと対話に推奨される方法としてブラウザーベースの IDE を使用します。CodeReady Workspaces 2.6 ワークスペースと対話する別の方法については、「ワークスペースへのリモートアクセス」 を参照してください。

3.1. devfile を使用したワークスペースの設定

CodeReady Workspaces ワークスペースを迅速かつ簡単に設定するには、devfile を使用します。devfile の概要とその使用方法については、本セクションの手順を参照してください。

3.1.1. devfile とは

devfile は、開発環境を記述し、定義するファイルです。

  • ソースコード。
  • ブラウザー IDE ツールやアプリケーションランタイムなどの開発コンポーネント。
  • 事前定義コマンドの一覧。
  • クローン作成するプロジェクト。

devfile は、CodeReady Workspaces が消費し、複数のコンテナーで構成されるクラウドワークスペースに変換する YAML ファイルです。devfile はリモートまたはローカルに保存できます。以下のような各種の方法で実行できます。

  • git リポジトリーのルートフォルダー、または機能ブランチを使用。
  • HTTP 経由でアクセス可能な一般にアクセスできる Web サーバーを使用。
  • ローカルでファイルとして使用、またはcrwctlを使用してデプロイ。
  • devfile のコレクション (devfile レジストリー として知られる) を使用。

ワークスペースの作成時に、CodeReady Workspaces はその定義を使用してすべてを開始し、必要なツールおよびアプリケーションランタイムのすべてのコンテナーを実行します。また、CodeReady Workspaces はファイルシステムボリュームをマウントして、ソースコードをワークスペースで利用できるようにします。

devfile は、プロジェクトのソースコードでバージョン管理できます。ワークスペースで古いメンテナンスブランチを修正する必要がある場合、プロジェクトの devfile は、ワークスペースの定義を古いブランチでの機能を開始するために必要な各種ツールと依存関係と共に提供します。これを使用してワークスペースをオンデマンドでインスタンス化します。

CodeReady Workspaces は、ワークスペースで使用するツールと共に devfile の最新の状態を維持します。

  • パス、git の場所、ブランチなどのプロジェクトの要素。
  • ビルド、実行、テスト、デバッグなどの日次タスクを実行するためのコマンド。
  • アプリケーションの実行に必要なコンテナーイメージを含むランタイム環境。
  • 開発者がワークスペースで使用するツール、IDE 機能、ヘルパーが含まれる Che-Theia プラグイン (例: Git、Java サポート、SonarLint、およびプルリクエスト)。

3.1.2. Git リポジトリーのデフォルトブランチでのワークスペースの作成

Git ソースリポジトリーに保存される devfile を参照して、CodeReady Workspaces ワークスペースを作成できます。次に、CodeReady Workspaces インスタンスは検出された devfile.yaml ファイルを使用して factory URL (/f?url=) API を使用してワークスペースをビルドします。

前提条件

手順

URL \https://codeready-<openshift_deployment_name>.<domain_name>/f?url=https://<GitRepository> を開いてワークスペースを実行します。

https://che.openshift.io/f?url=https://github.com/eclipse/che
Copy to Clipboard Toggle word wrap

3.1.3. Git リポジトリーの機能ブランチでのワークスペースの作成

CodeReady Workspaces ワークスペースは、ユーザーの選択する機能ブランチの Git ソースリポジトリーに保存される devfile を参照して作成できます。次に CodeReady Workspaces インスタンスは検出された devfile を使用してワークスペースをビルドします。

前提条件

手順

URL \https://codeready-<openshift_deployment_name>.<domain_name>/f?url=<GitHubBranch> を開いてワークスペースを実行します。

以下の URL 形式を使用して、che.openshift.io でホストされる実験的な quarkus-quickstarts ブランチを開きます。

https://che.openshift.io/f?url=https://github.com/maxandersen/quarkus-quickstarts/tree/che
Copy to Clipboard Toggle word wrap

3.1.4. HTTP を使用した一般にアクセス可能なスタンドアロン devfile でのワークスペースの作成

ワークスペースは、devfile、devfile の未加工コンテンツを参照する URL を使用して作成できます。次に CodeReady Workspaces インスタンスは検出された devfile を使用してワークスペースをビルドします。

前提条件

手順

  1. URL \https://codeready-<openshift_deployment_name>.<domain_name>/f?url=https://<yourhosturl>/devfile.yaml を開いてワークスペースを実行します。

https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml
Copy to Clipboard Toggle word wrap

3.1.5. factory パラメーターを使用した devfile 値の上書き

リモート devfile の以下のセクションにある値は、特別に作成される追加の factory パラメーターを使用して上書きできます。

  • apiVersion
  • metadata
  • projects
  • attributes

前提条件

手順

  1. URL \https://codeready-<openshift_deployment_name>.<domain_name>/f?url=https://<hostURL>/devfile.yaml&override.<parameter.path>=<value> に移動してワークスペースを開きます。

generateName プロパティーを上書きする例

以下の初期 devfile について考えてみましょう。

---
apiVersion: 1.0.0
metadata:
  generateName: golang-
projects:
...
Copy to Clipboard Toggle word wrap

generateName 値を追加または上書きするには、以下の factory URL を使用します。

https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&override.metadata.generateName=myprefix
Copy to Clipboard Toggle word wrap

作成されるワークスペースには、以下の devfile モデルがあります。

---
apiVersion: 1.0.0
metadata:
  generateName: myprefix
projects:
...
Copy to Clipboard Toggle word wrap

プロジェクトソースブランチプロパティーの上書き例

以下の初期 devfile について考えてみましょう。

---
apiVersion: 1.0.0
metadata:
  generateName: java-mysql-
projects:
  - name: web-java-spring-petclinic
    source:
      type: git
      location: "https://github.com/spring-projects/spring-petclinic.git"
...
Copy to Clipboard Toggle word wrap

ソースの branch の値を追加または上書きするには、以下の factory URL を使用します。

https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&override.projects.web-java-spring-petclinic.source.branch=1.0.x
Copy to Clipboard Toggle word wrap

作成されるワークスペースには、以下の devfile モデルがあります。

apiVersion: 1.0.0
metadata:
  generateName: java-mysql-
projects:
  - name: web-java-spring-petclinic
    source:
      type: git
      location: "https://github.com/spring-projects/spring-petclinic.git"
      branch: 1.0.x
...
Copy to Clipboard Toggle word wrap

属性値の上書きまたは作成例

以下の初期 devfile について考えてみましょう。

---
apiVersion: 1.0.0
metadata:
  generateName: golang-
attributes:
   persistVolumes: false
projects:
...
Copy to Clipboard Toggle word wrap

persistVolumes 属性値を追加または上書きするには、以下の factory URL を使用します。

https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&override.attributes.persistVolumes=true
Copy to Clipboard Toggle word wrap

作成されるワークスペースには、以下の devfile モデルがあります。

---
apiVersion: 1.0.0
metadata:
  generateName: golang-
attributes:
   persistVolumes: true
projects:
...
Copy to Clipboard Toggle word wrap

属性を上書きする場合、attributes キーワードをベースとするものはすべて属性名として解釈されるため、ユーザーはドットで区切られた名前を使用することができます。

https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&override.attributes.dot.name.format.attribute=true
Copy to Clipboard Toggle word wrap

作成されるワークスペースには、以下の devfile モデルがあります。

---
apiVersion: 1.0.0
metadata:
  generateName: golang-
attributes:
   dot.name.format.attribute: true
projects:
...
Copy to Clipboard Toggle word wrap

3.1.6. crwctl およびローカル devfile を使用したワークスペースの作成

crwctl ツールにローカルに保存された devfile を参照させて、CodeReady Workspaces ワークスペースを作成できます。次に CodeReady Workspaces インスタンスは検出された devfile を使用してワークスペースをビルドします。

前提条件

手順

  1. 以下のように、crwctl ツールに workspace:create パラメーターを指定して devfile からワークスペースを実行します。
$ crwctl workspace:create --name=<WORKSPACE_NAME> \ 
1

--devfile=devfile.yaml --start \
-n openshift-workspaces
Copy to Clipboard Toggle word wrap
1
作成するワークスペース名
注記

--devfile フラグを省略すると、crwctl は現行ディレクトリーで、ワークスペースの作成に使用する devfile.yaml または devfile.yml ファイルを検索します。

本セクションでは、factory パラメーターを使用してワークスペースのデプロイメントのラベルとアノテーションをカスタマイズする方法を説明します。

前提条件

手順

  1. URL \https://codeready-<openshift_deployment_name>.<domain_name>/f?url=https://<hostURL>/devfile.yaml&workspaceDeploymentLabels=<url_encoded_comma_separated_key_values>&workspaceDeploymentAnnotations=<url_encoded_comma_separated_key_values override> に移動してワークスペースを開きます。

deployment labelsを上書きする例

追加する以下のラベルについて検討します。

ike.target=preference-v1
ike.session=test
Copy to Clipboard Toggle word wrap

ラベルを追加または上書きするには、以下のファクトリー URL を使用します。

https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&workspaceDeploymentLabels=ike.target%3Dpreference-v1%2Cike.session%3Dtest
Copy to Clipboard Toggle word wrap

作成されるワークスペースには、以下のデプロイメントラベルが含まれます。

---
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: "2020-10-27T14:03:26Z"
  generation: 1
  labels:
    che.component.name: che-docs-dev
    che.original_name: che-docs-dev
    che.workspace_id: workspacegln2g1shejjufpkd
    ike.session: test
    ike.target: preference-v1
  name: workspacegln2g1shejjufpkd.che-docs-dev
  namespace: opentlc-mgr-che
  resourceVersion: "107516"
spec:
...
Copy to Clipboard Toggle word wrap

deployment annotationsを上書きする例

追加する以下のアノテーションについて検討します。

ike.A1=preference-v1
ike.A=test
Copy to Clipboard Toggle word wrap

アノテーションを追加または上書きするには、以下のファクトリー URL を使用します。

https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&workspaceDeploymentAnnotations=ike.A1%3Dpreference-v1%2Cike.A%3Dtest
Copy to Clipboard Toggle word wrap

生成されるワークスペースには、以下のデプロイメントアノテーションが含まれます。

---
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
    ike.A: test
    ike.A1: preference-v1
  creationTimestamp: "2020-10-28T09:58:52Z"
  generation: 1
  labels:
    che.component.name: che-docs-dev
    che.original_name: che-docs-dev
    che.workspace_id: workspacexrtf710v64rl5ouz
  name: workspacexrtf710v64rl5ouz.che-docs-dev
  namespace: opentlc-mgr-che
  resourceVersion: "213191"
...
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat