[PYTHON] Bénéficiez de l'environnement le plus puissant avec VS Code, Remote-Containers et Remote Docker-Daemon

introduction

Construire un environnement de développement est le premier obstacle au développement, une tâche fastidieuse et complexe.

――Collision avec l'environnement conventionnel et tout est détruit ――Le problème se produit car l'environnement est légèrement différent de celui des membres de l'équipe

La version de base résout les tracas du développement environnemental, et la version avancée propose un nouveau développement qui combine sécurité et expérience de développement. Cette méthode peut être appliquée à la plupart des langages, mais cette fois, nous expliquerons l'utilisation de ** python **, qui est l'un des langages où la construction d'un environnement de développement est problématique.

table des matières

  1. Basique: Développement sans environnement de développement à l'aide de conteneurs distants
  2. Avancé: bénéficiez de l'environnement le plus puissant avec Remote-Containers + Cloud + Thin Client PC
  3. Édition pratique: modèles utilisés par l'équipe de développement proprement dite ** (seront ajoutés ultérieurement) **

** Le favori provient de la version avancée **

Basique: Développement sans environnement de développement à l'aide de conteneurs distants

VSCode [Remote-Containers](https://marketplace.visualstudio.com/items?itemName=ms- Connaissez-vous une extension appelée vscode-remote.remote-containers)? Si vous le connaissez, sautez cette édition de base et passez à l'édition avancée!

C'est un diagramme en image de la page officielle architecture-containers.png

Pour expliquer brièvement Remote-Containers, il s'agit d'une extension de Dieu qui construit un environnement de développement avec un conteneur docker et exécute le code dedans, mais édite et débogue le code avec VSCode à portée de main.

Parce que l'environnement de développement est verrouillé dans le conteneur

Il y a des mérites tels que. Il n'y a presque aucun inconvénient. Il s'agit d'un niveau d'extension qui doit être utilisé sauf si vous ne pouvez pas utiliser VS Code pour des raisons religieuses. Divers articles ont déjà été écrits à ce sujet, veuillez donc vous y référer pour la méthode d'introduction, etc.

Lien de référence Remote-Containers

Résumé de base

Je n'ai pas donné une explication détaillée des principes de base dans cet article parce qu'il dit "se tenir sur les épaules des géants", mais s'il vous plaît, jetez un œil aux liens de référence et présentez-le. Vous n'avez plus à vous soucier de la création d'un environnement de développement. (J'espère que la guerre des outils de construction d'environnement python sera terminée)

Avancé: bénéficiez de l'environnement le plus puissant avec Remote-Containers + Cloud + Thin Client PC

C'est le coup de coeur de cet article! Nous partirons du principe que les bases de Remote-Containers sont supprimées.

Explication générale

Remote-Containers est un outil de développement sur docker, vous n'avez donc pas besoin d'utiliser docker-daemon sur votre PC local. En d'autres termes, les configurations suivantes sont possibles.

design.png

Ce qui est important ici

Est sur la machine distante. Et

Est sur la machine locale. Le lieu. En d'autres termes, ** La machine locale est un PC client léger avec des spécifications faibles et ne contient que VSCode et ses paramètres. Le code source et le débogage peuvent être configurés sur un serveur distant puissant **. C'est à la fois une expérience de développement et de sécurité, et je pense que cela pourrait être un nouveau style de développement.

Essayez-le sur GCP

Cette fois, je vais le créer en utilisant mon PC et une instance sur GCP. Peu importe qu'il s'agisse d'AWS ou d'Azure. Si vous souhaitez utiliser autre chose que GCP, veuillez le lire comme il convient.

supposition

--GCP est prêt à l'emploi

Créez une instance sur GCP et enregistrez les paramètres ssh

GCP a une image de VM spécialisée pour la configuration d'un conteneur, je vais donc l'utiliser pour cette fois. N'hésitez pas à définir la zone.

gcloud compute instances create [instance_name] \
--image-family cos-stable \
--image-project cos-cloud \
--machine-type n1-standard-1

Une fois l'instance activée, essayez ssh.

gcloud compute ssh [instance_name]

Lorsque ssh est terminé avec succès, écrivez les paramètres ssh sur votre PC.

gcloud compute config-ssh

Maintenant, la clé ssh est enregistrée sur votre PC et vous pouvez ssh avec ssh [nom_instance]. [Zone]. [Nom_projet]. essayez-le.

Créer un projet sur la VM

S'il vous plaît ssh à VM. Je pense que la commande git est déjà incluse, donc clonez n'importe quel projet depuis git. Si vous ne trouvez rien, créez ʻapp.py et requirements.txt. Faites attention aux droits d'accès. Étant donné que vous pouvez le toucher depuis l'intérieur du conteneur, vous devez accéder au groupe Docker. Si cela vous pose problème, veuillez utiliser ch mod 777 -R [chemin du répertoire du projet]` cette fois et définir le droit d'accès à Gaba Gaba pour le moment.

Créez un fichier de configuration pour Remote-Conteinrs sur votre PC

Créez un répertoire pour le fichier de configuration et placez-y le fichier de configuration pour Remote-Container. Prenons un projet python comme exemple. Tout d'abord, clonez l'exemple de projet Microsoft qui contient le fichier de configuration.

git clone https://github.com/microsoft/vscode-remote-try-python.git

Il existe différents fichiers pour python, donc

Veuillez tout supprimer sauf. Ensuite, ajoutez un paramètre pour utiliser le docker-daemon de la VM sur GCP avec le plug-in Remote-Contaienrs. Créez setting.json dans .vscode et écrivez ce qui suit.

{
    "docker.host": "ssh://[container_name].[zone].[project_name]"
}

Ensuite, modifiez le répertoire cible de montage du projet. Ajoutez deux valeurs-clés à .devcontainer / .devcontainer.json.

"workspaceMount": "source=[Chemin complet du projet sur GCP],target=/workspace,type=bind,consistency=delegated",
"workspaceFolder": "/workspace"

Avec ce paramètre, lorsque le conteneur est configuré sur GCP, le projet créé précédemment sera monté.

Développer avec des conteneurs distants

Sélectionnez «Rouvrir dans le conteneur» dans le menu du plug-in vscode Remote-Containers pour vous connecter au docker-daemon sur la VM GCP, configurer un conteneur, y ouvrir le projet et connecter vscode. Après cela, vous pouvez vous développer librement!

Résumé

Cette fois, j'ai expliqué la partie de base et la partie avancée séparément. J'ai omis les bases et l'explication détaillée de Remote-Container, mais le simple fait d'utiliser Remote-Container a normalement des avantages considérables tels que l'élimination du besoin de créer un environnement de développement et l'unification de l'environnement parmi les membres. Il y a. De plus, en utilisant la méthode utilisant le docker-daemon distant introduit dans la section application, il est possible d'opérer en mettant les ressources de calcul sur un PC puissant sans mettre le code sur le PC à portée de main. Je pense que c'est une méthode de développement qui équilibre la sécurité et l'expérience de développement.

Essayez-le.

Recommended Posts

Bénéficiez de l'environnement le plus puissant avec VS Code, Remote-Containers et Remote Docker-Daemon
[Venv non requis] L'environnement de développement Python le plus puissant créé avec des conteneurs distants [VS Code / Docker]
Compilation croisée de Raspberry Pi et création d'un environnement de développement de débogage à distance avec VS Code
Déboguer à distance l'environnement Django créé avec docker-compose avec VS Code
Comment développer des conteneurs sur des serveurs distants avec VS Code Remote-Containers
Comment créer un environnement d'exécution Python et Jupyter avec VSCode
Impressions et mémorandum lors de la première utilisation de VScode
Créez l'environnement de calcul le plus puissant avec Sympy + Jupyter
J'ai essayé Flask avec des conteneurs distants de VS Code
Environnement virtuel / package Python (Windows10) avec VSCode
Utiliser Python dans un environnement Anaconda avec VS Code
Créer un environnement d'exécution python avec VS Code
Comment sensibiliser VS Code à l'environnement venv et à ses avantages
Introduisez VS Code et le développement à distance dans un environnement hors ligne pour rendre le développement Linux confortable
Modifiez et déboguez le code dans Raspberry Pi avec la fonction de connexion SSH de VSCode
Obtenez des commentaires et des abonnés avec l'API de données YouTube
Installez Ubuntu 20.04 avec GUI et préparez l'environnement de développement
Créez un environnement de développement Go avec les conteneurs distants de VS Code
Paramètres pour entrer et déboguer le contenu de la bibliothèque avec VS Code
Histoire que Python a cessé de travailler avec VS Code (Windows 10)
LaTeX confortable avec sous-système Windows pour Linux et VS Code
Comment entrer dans l'environnement de développement Python avec Vagrant
Commerce du système à partir de Python3: obtenez le dernier code de programme
Fabriquez un thermomètre BLE et obtenez la température avec Pythonista3
Créer un environnement Python avec WSL + Pyenv + Jupyter + VSCode
Obtenez le code du pays avec python
Python avec VSCode (Windows 10)
Déboguer Python avec VS Code
Vérifiez le code avec flake8
La meilleure façon d'utiliser MeCab et CaboCha avec Google Colab
Paramètres de débogage dans un environnement virtuel lors de l'utilisation de Pipenv avec VSCode
Créer un environnement de développement à l'aide de Jupyter et Flask avec Python dans Docker (prend en charge à la fois VS Code / code-server)
Décrypter le code QR avec CNN
Commencez avec Python! ~ ① Construction de l'environnement ~
Obtenez la météo avec les requêtes Python
Obtenez la météo avec les requêtes Python 2
Essayez d'exécuter Jupyter avec VS Code
Obtenir une adresse à partir d'un code postal
Installez python avec mac vs code
Préparez l'environnement de développement avec anyenv
Créer un environnement avec pyenv et pyenv-virtualenv
Préparez un environnement virtuel Python pour votre projet avec venv avec VS Code
J'étais accro à la création d'un environnement Python venv avec VS Code
Comment obtenir la différence de date et d'heure en secondes avec Python
Procédure de création d'un environnement virtuel Python avec VS Code sous Windows
Modifiez le fichier du serveur de destination de la connexion SSH sur le serveur avec VS Code
J'ai défini des variables d'environnement dans Docker et je les ai affichées en Python.
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
Exemple de code pour obtenir oauth_token et oauth_token_secret de l'API Twitter en Python 2.7
Obtenez et convertissez l'heure actuelle dans le fuseau horaire local du système avec python
Lisez l'image du graphique avec OpenCV et obtenez les coordonnées du point final du graphique
Obtenez des visites d'articles et des likes avec l'API Qiita + Python
Obtenez et estimez la forme de la tête en utilisant Dlib et OpenCV avec python
VS Code se bloque et le PC se bloque lors du lancement du serveur avec go