Skaffold ファイルの同期とホットリロードを有効にする

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

ローカルの開発用ワークフローの効率を高め、Pod の再ビルド、再デプロイ、再起動を行わずに済むように、Skaffold は変更されたファイルをデプロイ済みコンテナにコピーできます。つまり、静的ファイルとソースコード ファイルに変更を加えた場合、その変更は数秒で反映されるため、フィードバック ループが高速化されます。

静的ファイル(HTML ファイルや CSS ファイルなど)の場合、このファイルをコピーする動作はファイルの同期と呼ばれます。

ソースコード ファイルにおけるこの動作は、ホットリロードと呼ばれ、次のファイル形式で機能します。

  • Go: *.go
  • Java: *.java, *.kt, *.scala, *.groovy, *.clj
  • NodeJS: *.js、*.mjs、*.coffee、*.litcoffee、*.json

ホットリロードを構成すると、Skaffold はサポートされているファイルの変更を検出し、これらの変更をクラスタで実行中のコンテナに同期します。これにより、煩雑なイメージの再ビルドと Pod の再起動を行う必要がなくなります。ただし、他のファイル形式の変更によって、イメージの再ビルドがトリガーされます。

Buildpacks を優先ビルダーとして使用している場合、ファイルの自動同期とホット リロードはデフォルトで有効になっています。Docker などの他のビルダーでは、カスタマイズするアーティファクトの skaffold.yamlsync セクションを指定できます。

次の同期設定のいずれかを行うことができます(優先順位順)。

  • auto(Jib および Buildpacks のアーティファクトのみ)
  • infer
  • manual

manual 同期を指定して、すべての /static-html HTML ファイルをコンテナ内の static フォルダに同期する場合は、skaffold.yaml に次の sync セクションを含めます。

build:
  artifacts:
    - image: gcr.io/k8s-skaffold/node-example
      context: node
      sync:
        manual:
          - src: 'static-html/*.html'
            dest: static

ファイルの同期と同期ルールの指定の詳細については、ファイル同期に関する Skaffold のガイドをご覧ください。