3.5.5. odo deploy
odo
を使用すると、CI/CD システムを使用してコンポーネントをデプロイする方法と同様に、コンポーネントをデプロイできます。まず、odo
はコンテナーイメージをビルドしてから、コンポーネントのデプロイに必要な Kubernetes リソースをデプロイします。
コマンド odo deploy
を実行すると、odo
は devfile で kind deploy
のデフォルトコマンドを検索し、以下のコマンドを実行します。このタイプの deploy
は、バージョン 2.2.0 以降の devfile 形式でサポートされます。
deploy
コマンドは通常、いくつかの 適用 コマンドで設定される 複合 コマンドです。
-
適用されると、デプロイするコンテナーのイメージを構築し、それをレジストリーにプッシュする
image
コンポーネントを参照するコマンド。 - Kubernetes コンポーネント を参照するコマンドは、適用されるとクラスターに Kubernetes リソースを作成します。
以下の devfile.yaml
ファイルのサンプルでは、コンテナーイメージはディレクトリーにある Dockerfile
を使用してビルドされます。イメージはレジストリーにプッシュされ、この新規にビルドされたイメージを使用して Kubernetes Deployment リソースがクラスターに作成されます。
schemaVersion: 2.2.0 [...] variables: CONTAINER_IMAGE: quay.io/phmartin/myimage commands: - id: build-image apply: component: outerloop-build - id: deployk8s apply: component: outerloop-deploy - id: deploy composite: commands: - build-image - deployk8s group: kind: deploy isDefault: true components: - name: outerloop-build image: imageName: "{{CONTAINER_IMAGE}}" dockerfile: uri: ./Dockerfile buildContext: ${PROJECTS_ROOT} - name: outerloop-deploy kubernetes: inlined: | kind: Deployment apiVersion: apps/v1 metadata: name: my-component spec: replicas: 1 selector: matchLabels: app: node-app template: metadata: labels: app: node-app spec: containers: - name: main image: {{CONTAINER_IMAGE}}