5.3. Che プラグインレジストリーへの VS Code 拡張機能の追加
CodeReady Workspaces ワークスペースで VS Code 拡張機能を使用するには、CodeReady Workspaces が拡張機能を記述するメタデータを使用する必要があります。CodeReady Workspaces プラグインレジストリーは、一般的な VS Code 拡張機能についてのメタデータを公開する静的 Web サイトです。CodeReady Workspaces プラグインレジストリーの VS Code 拡張機能メタデータは、che-theia-plugins.yaml
という名前の中央ファイルから生成されます。
CodeReady Workspaces プラグインレジストリーの拡張を追加または変更するには、che-theia-plugins.yaml
ファイルを編集して、関連するメタデータを追加します。
注記
ここでは、カスタムプラグイン定義を使用してプラグインレジストリーを構築するのに必要な手順を説明します。devfile で直接参照できるカスタム meta.yaml
ファイルを作成する場合は、「VS Code 拡張のメタデータの公開」 を参照してください。
前提条件
- レジストリーのカスタマイズに関する作業知識は、レジストリーのカスタマイズを参照してください。
- サイドカーコンテナーイメージへのリンク。VS Code 拡張機能で必要なものである必要があります。
手順
che-theia-plugins.yaml
ファイルを編集し、新規エントリーを作成します。- id: publisher/my-vscode-ext 1 repository: 2 url: https://github.com/publisher/my-vscode-ext 3 revision: 1.7.2 4 aliases: 5 - publisher/my-vscode-ext-revised preferences: 6 asciidoc.use_asciidoctorpdf: true shellcheck.executablePath: /bin/shellcheck solargraph.bundlerPath: /usr/local/bin/bundle solargraph.commandPath: /usr/local/bundle/bin/solargraph sidecar: 7 image: quay.io/repository/eclipse/che-plugin-sidecar:sonarlint-2fcf341 8 name: my-vscode-ext-sidecar 9 memoryLimit: "1500Mi" 10 memoryRequest: "1000Mi" 11 cpuLimit: "500m" 12 cpuRequest: "125m" 13 command: 14 - /bin/sh args: 15 - "-c" - "./entrypoint.sh" volumeMounts: 16 - name: vscode-ext-volume 17 path: "/home/theia/my-vscode-ext" 18 endpoints: 19 - name: "configuration-endpoint" 20 public: true 21 targetPort: 61436 22 attributes: 23 protocol: http extension: https://github.com/redhat-developer/vscode-yaml/releases/download/0.4.0/redhat.vscode-yaml-0.4.0.vsix 24 skipDependencies: 25 - id-of/extension1 - id-of/extension2 extraDependencies: 26 - id-of/extension1 - id-of/extension2 metaYaml: skipIndex: <true|false> 27 skipDependencies: 28 - id-of/extension1 - id-of/extension2 extraDependencies: 29 - id-of/extension1 - id-of/extension2
- 1
- (任意) プラグインの ID。プラグインで、1 つのリポジトリーに対して複数のエントリーがある場合に役に立ちます(例: Java 8 の Java 11 の比較)。
- 2
- プラグインのリポジトリー情報。ID が指定されている場合、このフィールドはリスト要素ではありません。
- 3
- 拡張の git リポジトリーへの URL。
- 4
- バージョン、スナップショット、またはリリースに対応する、拡張機能をホストするアップストリームリポジトリのタグまたはSHA1 ID。
- 5
- (任意) このプラグインのエイリアス: これは、ここに記載されている内容はすべて独自の
meta.yaml
ファイルを生成することを意味します。 - 6
- (任意) フリーフォーム形式のプラグイン設定。
- 7
- (任意) プラグインがサイドカーコンテナーで実行される場合は、ここにサイドカーコンテナー情報が指定されます。
- 8
- プラグインサイドカーとして使用されるコンテナイメージの場所。この行は
directory
と同時に指定することはできません(上記を参照)。 - 9
- (任意) サイドカーコンテナーの名前
- 10
- (任意) サイドカーコンテナーのメモリー制限
- 11
- (任意) サイドカーコンテナーのメモリー要求
- 12
- (任意) サイドカーコンテナーの CPU 制限
- 13
- (任意) サイドカーコンテナーの CPU 要求
- 14
- (任意) コンテナー内の root プロセスコマンドの定義。
- 15
- (任意) コンテナー内の root プロセスコマンドの引数。
- 16
- (任意) サイドカーコンテナーのボリュームマウント情報
- 17
- マウントの名前
- 18
- マウントのパス
- 19
- (任意) サイドカーコンテナーのエンドポイント情報
- 20
- エンドポイント名
- 21
- エンドポイントが公開されているかどうかを判断するブール値
- 22
- ポート番号
- 23
- エンドポイントに関連する属性
- 24
- このプラグインに含まれる
vsix
ファイルへの直接リンク。メイン拡張機能など、指定されたリポジトリーで構築されたvsix
は最初にリストする必要があります。 - 25
- # TODO #
- 26
- (任意) package.json の extensionDependencies フィールドに一覧表示されているものに加えて、依存関係を追加します。
- 27
- (任意) true の場合は、このプラグインを index.json に含めないでください。スタンドアロンプラグインとして公開しない依存関係の場合に便利です。
- 28
- (任意) package.json の extensionDependencies フィールドから指定された依存関係を確認しません(meta.yaml 生成のみ)。
- 29
- (任意) package.json の extensionDependencies フィールドに一覧表示されているものに加えて、依存関係を追加します(meta.yaml 生成のみ)。
-
選択したオプションで、
build.sh
スクリプトを実行します。ビルドプロセスは、che-theia-plugins.yaml
ファイルのエントリーに基づいてmeta.yaml
ファイルを自動的に生成します。 -
CodeReady Workspaces で作成されるプラグインレジストリーイメージを使用するか、
meta.yaml
ファイルをレジストリーコンテナーからコピーして、これを HTTP リソースとして直接参照します。
-
選択したオプションで、