3.8. OpenShift アプリケーションのワークスペースへのインポート
CodeReady Workspaces ワークスペースでアプリケーションの新規インスタンスをデプロイするには、以下のいずれかのシナリオを使用します。
- 既存のワークスペースの変更:ダッシュボードのユーザーインターフェイスの使用
-
実行中のアプリケーションから:
crwctlによる devfile の生成
3.8.1. OpenShift アプリケーションのワークスペース devfile 定義への追加 リンクのコピーリンクがクリップボードにコピーされました!
この手順では、OpenShift アプリケーションを組み込むために CodeReady Workspaces ワークスペース devfile を定義する方法を説明します。
デモの目的で、以下の 2 つの Pod を持つサンプル OpenShift アプリケーションを使用します。
- この nodejs-app.yaml で指定される Node.js アプリケーション
- この mongo-db.yaml で指定される MongoDB Pod
OpenShift クラスターでアプリケーションを実行するには、以下を実行します。
$ node=https://raw.githubusercontent.com/redhat-developer/devfile/master/samples/web-nodejs-with-db-sample/nodejs-app.yaml && \
mongo=https://raw.githubusercontent.com/redhat-developer/devfile/master/samples/web-nodejs-with-db-sample/mongo-db.yaml && \
oc apply -f ${mongo} && \
oc apply -f ${node}
前提条件
- Red Hat CodeReady Workspaces の実行中のインスタンスでクラスターにログインしている。Red Hat CodeReady Workspaces のインスタンスをインストールするには、CodeReady Workspaces のインストール について参照してください。
-
crwctl管理ツールが利用可能である。Using the crwctl management tool セクションを参照してください。
手順
最も簡単な devfile を作成します。
apiVersion: 1.0.0 metadata: name: minimal-workspace1 - 1
minimal-workspaceの名前を指定します。CodeReady Workspaces サーバーがこの devfile を処理すると、devfile はデフォルトのエディター (Che-Theia) とデフォルトのエディタープラグイン (ターミナルなど) のみを持つ最小の CodeReady Workspaces ワークスペースに変換されます。
OpenShift アプリケーションをワークスペースに追加するには、devfile を変更して
Kubernetesコンポーネントタイプを追加します。たとえば、NodeJS-Mongo アプリケーションを
minimal-workspaceに組み込むには、以下を実行します。apiVersion: 1.0.0 metadata: name: minimal-workspace components: - type: openshift reference: https://raw.githubusercontent.com/.../mongo-db.yaml - alias: nodejs-app type: openshift reference: https://raw.githubusercontent.com/.../nodejs-app.yaml entrypoints: - command: ['sleep']1 args: ['infinity']- 1
sleep infinityコマンドは、Node.js アプリケーションのエントリーポイントとして追加されます。このコマンドは、ワークスペースの開始フェーズでアプリケーションが起動しないようにします。この設定により、ユーザーはテストまたはデバッグ目的で必要に応じてアプリケーションを起動できます。
devfile にコマンドを追加して、開発者のアプリケーションのテストをより容易にします。
apiVersion: 1.0.0 metadata: name: nodejs-with-db projects: - name: nodejs-mongo-app source: type: git location: 'https://github.com/ijason/NodeJS-Sample-App.git' commitId: 187d468 # refers to the last commitId the project compiles (with express3) components: - type: openshift reference: https://raw.githubusercontent.com/redhat-developer/devfile/master/samples/web-nodejs-with-db-sample/mongo-db.yaml - alias: nodejs-app type: openshift reference: https://raw.githubusercontent.com/redhat-developer/devfile/master/samples/web-nodejs-with-db-sample/nodejs-app.yaml commands: - name: run1 actions: - type: exec component: nodejs-app command: cd ${CHE_PROJECTS_ROOT}/nodejs-mongo-app/EmployeeDB/ && npm install && sed -i -- ''s/localhost/mongo/g'' app.js && node app.js- 1
- devfile に追加された
runコマンドは、コマンドパレットから Che-Theia のタスクとして利用できます。実行すると、コマンドは Node.js アプリケーションを起動します。
devfile を使用してワークスペースを作成し、起動します。
$ crwctl workspace:start --devfile <devfile-path>
関連情報