Activer la synchronisation de fichiers Skaffold et l'actualisation à chaud

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Pour améliorer l'efficacité de votre workflow de développement local et éviter de recompiler, redéployer et redémarrer vos pods, Skaffold permet de copier les fichiers modifiés dans un conteneur déployé. Cela signifie que lorsque vous apportez des modifications à des fichiers de code statique et source, vous pouvez voir que vos modifications prennent effet en quelques secondes, ce qui accélère le processus d'échange de commentaires.

Pour les fichiers statiques (tels que les fichiers HTML et CSS), ce comportement de copie de fichiers est appelé synchronisation de fichiers.

Pour les fichiers de code source, ce comportement est appelé rechargement à chaud et fonctionne pour les types de fichiers suivants :

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

Une fois le rechargement à chaud configuré, Skaffold détecte les modifications apportées aux fichiers compatibles et synchronise ces modifications avec le conteneur en cours d'exécution sur votre cluster, en évitant d'avoir à recréer des images de façon fastidieuse et à redémarrer le pod. Les modifications apportées à d'autres types de fichiers déclenchent toutefois une recompilation d'image.

La synchronisation automatique des fichiers et le rechargement à chaud sont activés par défaut lorsque vous utilisez Buildpacks comme compilateur préféré. Pour les autres compilateurs tels que Docker, vous pouvez spécifier une section sync dans le fichier skaffold.yaml pour l'artefact que vous personnalisez.

Vous pouvez choisir l'un des paramètres de synchronisation suivants (par ordre de préférence) :

  • auto (uniquement pour les artefacts Jib et Buildpacks,
  • infer
  • manual

Si vous devez spécifier une synchronisation manual pour synchroniser tous les fichiers HTML /static-html avec le dossier static de votre conteneur, skaffold.yaml contient cette section sync:

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

Pour en savoir plus sur la synchronisation des fichiers et la spécification des règles de synchronisation, consultez le guide Skaffold sur la synchronisation des fichiers.