3.5.4. コンポーネントの作成および非接続クラスターへのデプロイ

3.5.4.1. 非接続クラスターでの devfile を使用した NodeJS アプリケーションの作成

警告

この手順では、Red Hat が保守していない nodejs-ex.git アプリケーションなどの外部依存関係を使用しています。これらの依存関係についてはドキュメントでは保守対象ではなく、それらの機能は保証されていません。

前提条件

  • 非接続クラスターを作成し、ログインしている。
  • プロキシーに raw.githubusercontent.comregistry.access.redhat.com、および registry.npmjs.org URL を追加している。

手順

  1. devfile で NodeJS アプリケーションを定義します。

    devfile の例

    schemaVersion: 2.0.0
    metadata:
    name: nodejs
    starterProjects:
    - name: nodejs-starter
      git:
        remotes:
          origin: "https://github.com/odo-devfiles/nodejs-ex.git"
    components:
    - name: runtime
      container:
        image: registry.access.redhat.com/ubi8/nodejs-12:1-36
        memoryLimit: 1024Mi
        endpoints:
          - name: "3000/tcp"
            targetPort: 3000
        env:
          - name: HTTP_PROXY
            value: http://<proxy-host>:<proxy-port>
          - name: HTTPS_PROXY
            value: http://<proxy-host>:<proxy-port>
        mountSources: true
    commands:
    - id: devbuild
      exec:
        component: runtime
        commandLine: npm install
        workingDir: ${PROJECTS_ROOT}
        group:
          kind: build
          isDefault: true
    - id: build
      exec:
        component: runtime
        commandLine: npm install
        workingDir: ${PROJECTS_ROOT}
        group:
          kind: build
    - id: devrun
      exec:
        component: runtime
        commandLine: npm start
        workingDir: ${PROJECTS_ROOT}
        group:
          kind: run
          isDefault: true
    - id: run
      exec:
        component: runtime
        commandLine: npm start
        workingDir: ${PROJECTS_ROOT}
        group:
          kind: run

  2. アプリケーションを作成し、変更をクラスターにプッシュします。

    $ odo create nodejs --devfile <path-to-your-devfile> --starter $$ odo push

    出力例

    [...]
    Pushing devfile component nodejs
     ✓  Changes successfully pushed to component

  3. アプリケーションにアクセスして、クラスターにプッシュするために URL を作成します。

    $ odo url create url1 --port 3000 --host example.com --ingress && odo push

    出力例

    Validation
     ✓  Validating the devfile [145374ns]
    
    Creating Kubernetes resources for component nodejs
     ✓  Waiting for component to start [14s]
    
    Applying URL changes
     ✓  URL url1: http://url1.abcdr.com/ created
    
    Syncing to component nodejs
     ✓  Checking file changes for pushing [2ms]
     ✓  Syncing files to the component [3s]
    
    Executing devfile commands for component nodejs
     ✓  Executing devbuild command "npm install" [4s]
     ✓  Executing devrun command "npm start" [3s]
    
    Pushing devfile component nodejs
     ✓  Changes successfully pushed to component

  4. ストレージをアプリケーションに追加します。

    $ odo storage create <storage-name> --path /data --size 5Gi

    出力例

    ✓  Added storage abcde to nodejs
    
    Please use `odo push` command to make the storage accessible to the component

  5. 変更をクラスターにプッシュします。

    $ odo push