6.3. デフォルトのエクステンションの設定


デフォルトのエクステンションは、エクステンションバイナリー .vsix ファイルのパスを DEFAULT_EXTENSIONS 環境変数に配置することで指定される事前にインストールされたエクステンションのセットです。

起動後、エディターはこの環境変数を確認し、指定されていればエクステンションのパスを取得し、ユーザーの作業を妨げることなくバックグラウンドでインストールします。

デフォルトのエクステンションの設定は、エディターレベルから .vsix エクステンションをインストールする場合に役立ちます。

注記

複数のエクステンションを指定する場合は、セミコロンで区切ります。

  DEFAULT_EXTENSIONS='/projects/extension-1.vsix;/projects/extension-2.vsix'

DEFAULT_EXTENSIONS 環境変数を定義する方法について、.vsix ファイルをワークスペースに追加する複数の例を交えて説明します。

デフォルトの .vsix エクステンションをワークスペースに埋め込むには、3 つの異なる方法があります。

  • エクステンションバイナリーをソースリポジトリーに配置します。
  • devfile postStart イベントを使用して、ネットワークからエクステンションバイナリーを取得します。
  • エクステンションの .vsix バイナリーを che-code イメージに追加します。

エクステンションバイナリーのソースリポジトリーへの配置

エクステンションバイナリーを Git リポジトリーに配置し、devfile で環境変数を定義することが、デフォルトのエクステンションをワークスペースに追加する最も簡単な方法です。extension.vsix ファイルがリポジトリーのルートに存在する場合は、ツールコンテナーに DEFAULT_EXTENSIONS を設定できます。

手順

  • 以下の例のように、.devfile.yamlDEFAULT_EXTENSIONS を指定します。

    schemaVersion: 2.3.0
    metadata:
      generateName: example-project
    components:
      - name: tools
        container:
          image: quay.io/devfile/universal-developer-image:ubi8-latest
          env:
            - name: 'DEFAULT_EXTENSIONS'
              value: '/projects/example-project/extension.vsix'

devfile postStart イベントを使用して、ネットワークからエクステンションバイナリーを取得する

cURL または GNU Wget を使用して、エクステンションをワークスペースにダウンロードできます。そのためには、以下を行う必要があります。

  • エクステンションをワークスペースにダウンロードするための devfile コマンドを指定する
  • postStart イベントを追加して、ワークスペースの起動時にコマンドを実行する
  • devfile で DEFAULT_EXTENSIONS 環境変数を定義する

手順

  • 以下の例に示されている値を devfile に追加します。

    schemaVersion: 2.3.0
    metadata:
      generateName: example-project
    components:
      - name: tools
        container:
          image: quay.io/devfile/universal-developer-image:ubi8-latest
          env:
            - name: DEFAULT_EXTENSIONS
              value: '/tmp/extension-1.vsix;/tmp/extension-2.vsix'
    
    commands:
      - id: add-default-extensions
        exec:
          # name of the tooling container
          component: tools
          # download several extensions using curl
          commandLine: |
            curl https://.../extension-1.vsix --location -o /tmp/extension-1.vsix
            curl https://.../extension-2.vsix --location -o /tmp/extension-2.vsix
    
    events:
      postStart:
        - add-default-extensions
    警告

    curl で .gzip 圧縮ファイルをダウンロードする場合があります。これにより、エクステンションをインストールできなくなる可能性があります。これを修正するには、ファイルを .vsix.gz ファイルとして保存してから、gunzip で展開してみてください。これにより、.vsix.gz ファイルが展開された .vsix ファイルに置き換えられます。

    curl https://some-extension-url --location -o /tmp/extension.vsix.gz
    gunzip /tmp/extension.vsix.gz

che-code イメージにエクステンション .vsix バイナリーを含める

エディターイメージにバンドルされているデフォルトのエクステンションと、ConfigMap で定義された DEFAULT_EXTENSIONS 環境変数を使用すると、devfile を変更せずにデフォルトのエクステンションを適用できます。

以下の手順に従って、必要なエクステンションをエディターイメージに追加します。

手順

  • ディレクトリーを作成し、選択した .vsix エクステンションをこのディレクトリーに配置します。
  • 以下の内容で Dockerfile を作成します。

    # inherit che-incubator/che-code:latest
    FROM quay.io/che-incubator/che-code:latest
    USER 0
    
    # copy all .vsix files to /default-extensions directory
    RUN mkdir --mode=775 /default-extensions
    COPY --chmod=755 *.vsix /default-extensions/
    
    # add instruction to the script to copy default extensions to the working container
    RUN echo "cp -r /default-extensions /checode/" >> /entrypoint-init-container.sh
  • イメージをビルドし、これをレジストリーにプッシュします。

    $ docker build -t yourname/che-code:next .
    $ docker push yourname/che-code:next
  • ユーザーのプロジェクトに新規 ConfigMap を追加し、DEFAULT_EXTENSIONS 環境変数を定義して、エクステンションへの絶対パスを指定します。この ConfigMap は、環境変数をユーザーのプロジェクトのすべてのワークスペースに設定します。

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: vscode-default-extensions
      labels:
        controller.devfile.io/mount-to-devworkspace: 'true'
        controller.devfile.io/watch-configmap: 'true'
      annotations:
        controller.devfile.io/mount-as: env
    data:
      DEFAULT_EXTENSIONS: '/checode/default-extensions/extension1.vsix;/checode/default-extensions/extension2.vsix'
  • yourname/che-code:next イメージを使用してワークスペースを作成します。まず、ダッシュボードを開き、左側の Create Workspace タブに移動します。

    1. Editor Selector セクションで、Use an Editor Definition ドロップダウンを展開し、エディターの URI を Editor Image に設定します。
    2. サンプルをクリックするか、Git リポジトリー URL を使用してワークスペースを作成します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.