Développer une application Kubernetes avec le développement à distance

Cette page explique comment utiliser Cloud Code pour le développement à distance de VS Code, c'est-à-dire pour ouvrir votre codebase dans un conteneur distant où votre application est compilée, déboguée et déployée. Vous créez ainsi une application portable, quel que soit le système d'exploitation de votre ordinateur de développement.

Prérequis

En plus de la configuration décrite dans la section Installer l'extension Cloud Code, installez le pack d'extensions de VS Code Remote Development.

Prérequis

  1. Pour configurer un dossier .devcontainer avec un Dockerfile et un fichier Devcontainer.json configurés pour le langage que vous utilisez, cliquez sur Ouvrir une fenêtre à distance Ouvrir une fenêtre à distance > Ajouter des fichiers de configuration du conteneur de développement. Vous pouvez également suivre les étapes de la page Développement à distance dans des conteneurs.

    Une fois que vous avez suivi les instructions, votre espace de travail comprend les éléments suivants:

    • Le Dockerfile définit une image de conteneur qui contient les outils pour les développeurs à installer dans un conteneur de développement distant.

    • Devcontainer.json : indique à l'extension Remote Tools de VS Code comment exécuter le conteneur de développement distant.

  2. Ouvrez le Dockerfile et ajoutez des instructions pour installer Google Cloud CLI et Skaffold. Pour obtenir les commandes à jour, consultez les guides d'installation.

  3. Dans le fichier Dockerfile, ajoutez des instructions pour copier les configurations gcloud CLI et Skaffold de localhost avant la commande >> $HOME/.bashrc. Vous pouvez également réécrire les commandes pour installer gcloud CLI et Skaffold.

    # Copy localhost's ~/.kube/config file into the container and swap out localhost
    # for host.docker.internal whenever a new shell starts to keep them in sync.
    RUN echo '\n\
    if [ "$SYNC_LOCALHOST_KUBECONFIG" == "true" ]; then\n\
      mkdir -p $HOME/.kube\n\
      cp -r $HOME/.kube-localhost/* $HOME/.kube\n\
      sed -i -e "s/localhost/host.docker.internal/g" $HOME/.kube/config\n\
    \n\
    fi' \
    if [ "$SYNC_LOCALHOST_GCLOUD" == "true" ]; then\n\
     mkdir -p $HOME/.config/gcloud\n\
     cp -r $HOME/.gcloud-localhost/* $HOME/.config/gcloud\n\
    \n\
    fi' \
    
  4. Ouvrez le fichier Devcontainer.json et ajoutez les arguments d'exécution suivants pour copier les configurations gcloud CLI et Skaffold à partir de localhost:

      "-e", "SYNC_LOCALHOST_KUBECONFIG=true",
      "-e", "SYNC_LOCALHOST_GCLOUD=true",
    
  5. Une fois que vos fichiers ont le contenu requis, cliquez sur Ouvrir une fenêtre à distance.

Exemple de fichier devcontainer.json

Le fichier devcontainer.json indique à l'extension Remote Container les ports à exposer dans le conteneur, comment installer les lecteurs et les extensions à installer dans le conteneur distant. L'exemple de fichier devcontainer.json suivant indique que l'extension Remote Container doit installer l'extension Cloud Code for VS Code:

   "runArgs": [
         "-v","/var/run/docker.sock:/var/run/docker.sock",
         "--mount", "type=bind,source=${env:HOME}${env:USERPROFILE}/.kube,target=/root/.kube-localhost",
         "--mount", "type=bind,source=${env:HOME}${env:USERPROFILE}/.config/gcloud,target=/root/.gcloud-localhost",
         "-e", "SYNC_LOCALHOST_KUBECONFIG=true",
         "-e", "SYNC_LOCALHOST_GCLOUD=true",
         "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"
      ]

Étapes suivantes

Assistance

Pour envoyer vos commentaires, signalez tout problème sur GitHub ou posez une question sur Stack Overflow.