[PYTHON] Holen Sie sich die stärkste Umgebung mit VS Code, Remote-Containern und Remote-Docker-Daemon

Einführung

Der Aufbau einer Entwicklungsumgebung ist das erste Hindernis für die Entwicklung, eine mühsame und komplexe Aufgabe.

――Kollision mit der konventionellen Umgebung und alles wird zerstört ――Problem tritt auf, weil sich die Umgebung geringfügig von den Teammitgliedern unterscheidet

Die Basisversion löst den Aufwand der Umweltentwicklung, und die erweiterte Version schlägt eine Neuentwicklung vor, die Sicherheit und Entwicklungserfahrung kombiniert. Diese Methode kann auf die meisten Sprachen angewendet werden. Dieses Mal werden wir jedoch die Verwendung von ** Python ** erläutern, einer der Sprachen, in denen das Erstellen einer Entwicklungsumgebung problematisch ist.

Inhaltsverzeichnis

  1. Grundlegend: Entwicklung ohne Entwicklungsumgebung mit Remote-Containern
  2. Erweitert: Holen Sie sich die stärkste Umgebung mit Remote-Containern + Cloud + Thin Client-PC
  3. Praktische Ausgabe: Vom eigentlichen Entwicklungsteam verwendete Muster ** (werden später hinzugefügt) **

** Der Favorit ist aus der erweiterten Version **

Grundlegend: Entwicklung ohne Entwicklungsumgebung mit Remote-Containern

VSCode [Remote-Container](https://marketplace.visualstudio.com/items?itemName=ms- Kennen Sie eine Erweiterung namens vscode-remote.remote-container? Wenn Sie es wissen, überspringen Sie diese Basisausgabe und gehen Sie zur erweiterten Ausgabe!

Es ist ein Bilddiagramm der offiziellen Seite architecture-containers.png

Um Remote-Container kurz zu erläutern, handelt es sich um eine God-Erweiterung, die eine Entwicklungsumgebung mit einem Docker-Container erstellt und darin Code ausführt, den Code jedoch mit VSCode bearbeitet und debuggt.

Weil die Entwicklungsumgebung im Container gesperrt ist

Es gibt Verdienste wie. Es gibt fast keine Nachteile. Dies ist eine Erweiterungsstufe, die verwendet werden sollte, es sei denn, Sie können VS Code aus religiösen Gründen nicht verwenden. Es wurden bereits verschiedene Artikel darüber geschrieben, daher beziehen Sie sich bitte auf die Einführungsmethode usw.

Referenzlink für Remote-Container

Grundlegende Zusammenfassung

Ich habe die Grundlagen in diesem Artikel nicht im Detail erklärt, weil dort "auf den Schultern von Riesen stehen" steht, aber bitte schauen Sie sich die Referenzlinks an und stellen Sie sie vor. Sie müssen sich nicht mehr um die Erstellung einer Entwicklungsumgebung kümmern. (Ich hoffe, dass der Krieg um die Python-Umgebung beendet wird.)

Erweitert: Holen Sie sich die stärkste Umgebung mit Remote-Containern + Cloud + Thin Client-PC

Dies ist der Favorit dieses Artikels! Wir gehen davon aus, dass die Grundlagen von Remote-Containern unterdrückt werden.

Übersichtserklärung

Remote-Container sind ein Tool für die Entwicklung auf Docker, sodass Sie Docker-Daemon auf Ihrem lokalen PC nicht verwenden müssen. Mit anderen Worten sind die folgenden Konfigurationen möglich.

design.png

Was ist hier wichtig?

Befindet sich auf dem Remote-Computer. Und

Ist auf dem lokalen Computer. Der Ort. Mit anderen Worten: ** Der lokale Computer ist ein Thin Client-PC mit schwachen Spezifikationen und enthält nur VSCode und seine Einstellungen. Der Quellcode und das Debug können auf einem starken Remote-Server konfiguriert werden **. Dies ist sowohl eine Entwicklungserfahrung als auch Sicherheit, und ich denke, es könnte ein neuer Entwicklungsstil sein.

Probieren Sie es auf GCP

Dieses Mal werde ich es tatsächlich mit meinem PC und einer Instanz auf GCP erstellen. Es spielt keine Rolle, ob es sich um AWS oder Azure handelt. Wenn Sie etwas anderes als GCP verwenden möchten, lesen Sie dies bitte entsprechend.

Annahme

Erstellen Sie eine Instanz auf GCP und speichern Sie die SSH-Einstellungen

GCP hat ein VM-Image, das auf das Einrichten eines Containers spezialisiert ist, daher werde ich dieses für diese Zeit verwenden. Fühlen Sie sich frei, die Zone einzustellen.

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

Versuchen Sie ssh, sobald die Instanz aktiv ist.

gcloud compute ssh [instance_name]

Wenn ssh erfolgreich abgeschlossen wurde, schreiben Sie die ssh-Einstellungen auf Ihren PC.

gcloud compute config-ssh

Jetzt wird der ssh-Schlüssel auf Ihrem PC gespeichert und Sie können ssh mit ssh [Instanzname]. [Zone]. [Projektname]. Versuch es.

Erstellen Sie ein Projekt auf der VM

Bitte ssh an VM. Ich denke, dass der Befehl git bereits enthalten ist, also klonen Sie jedes Projekt von git. Wenn Ihnen nichts einfällt, erstellen Sie "app.py" und "require.txt". Achten Sie auf die Zugriffsrechte. Da Sie es aus dem Container heraus berühren können, benötigen Sie Zugriff auf die Docker-Gruppe. Wenn es problematisch ist, verwenden Sie dieses Mal ch mod 777 -R [Projektverzeichnispfad] und legen Sie vorerst das Zugriffsrecht auf Gaba Gaba fest.

Erstellen Sie eine Konfigurationsdatei für Remote-Conteinrs auf Ihrem PC

Erstellen Sie ein Verzeichnis für die Konfigurationsdatei und legen Sie dort die Konfigurationsdatei für Remote-Container ab. Nehmen wir als Beispiel ein Python-Projekt. Klonen Sie zunächst das Microsoft-Beispielprojekt, das die Konfigurationsdatei enthält.

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

Es gibt also verschiedene Dateien für Python

Bitte löschen Sie alles außer. Fügen Sie als Nächstes eine Einstellung hinzu, um den Docker-Daemon der VM auf GCP mit dem Plug-In Remote-Contaienrs zu verwenden. Erstellen Sie settings.json in .vscode und schreiben Sie Folgendes.

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

Ändern Sie als Nächstes das Mount-Zielverzeichnis des Projekts. Fügen Sie .devcontainer / .devcontainer.json zwei Schlüsselwerte hinzu.

"workspaceMount": "source=[Vollständiger Projektpfad zu GCP],target=/workspace,type=bind,consistency=delegated",
"workspaceFolder": "/workspace"

Mit dieser Einstellung wird beim Einrichten des Containers in GCP das zuvor erstellte Projekt bereitgestellt.

Entwickeln Sie mit Remote-Containern

Wählen Sie im Plug-in-Menü von vscode Remote-Containers die Option In Container erneut öffnen, um eine Verbindung zum Docker-Daemon auf der GCP-VM herzustellen, einen Container einzurichten, das Projekt dort zu öffnen und vscode zu verbinden. Danach können Sie sich frei entwickeln!

Zusammenfassung

Dieses Mal habe ich die Basisversion und die erweiterte Version separat erklärt. Ich habe die Grundlagen und die ausführliche Erklärung von Remote-Container weggelassen, aber selbst wenn Sie Remote-Container normal verwenden, gibt es erhebliche Vorteile, wie die unnötige Erstellung einer Entwicklungsumgebung und die Vereinheitlichung der Umgebung unter den Mitgliedern. Es gibt. Darüber hinaus ist es mithilfe der im Anwendungsabschnitt eingeführten Methode des Remote-Docker-Daemons möglich, die Berechnungsressourcen auf einem leistungsstarken PC zu speichern, ohne den Code auf dem vorhandenen PC zu speichern. Ich denke, es ist eine Entwicklungsmethode, die Sicherheit und Entwicklungserfahrung in Einklang bringt.

Versuch es bitte.

Recommended Posts

Holen Sie sich die stärkste Umgebung mit VS Code, Remote-Containern und Remote-Docker-Daemon
[Venv nicht erforderlich] Die stärkste Python-Entwicklungsumgebung, die mit Remote Containern erstellt wurde [VS Code / Docker]
Cross-Compilieren von Raspberry Pi und Erstellen einer Remote-Debug-Entwicklungsumgebung mit VS Code
Debuggen Sie die mit Docker-Compose mit VS-Code erstellte Django-Umgebung aus der Ferne
So entwickeln Sie Container auf Remote-Servern mit VS Code Remote-Containern
So erstellen Sie eine Python- und Jupyter-Ausführungsumgebung mit VSCode
Impressionen und Memorandum bei der ersten Arbeit mit VScode
Erstellen Sie mit Sympy + Jupyter die stärkste Taschenrechnerumgebung
Ich habe Flask mit Remote-Containern von VS Code ausprobiert
Virtuelle Python / Windows (Windows 10) -Umgebung / Paket mit VSCode
Verwenden Sie Python in einer Anaconda-Umgebung mit VS-Code
Erstellen Sie eine Python-Ausführungsumgebung mit VS-Code
So machen Sie VS Code auf die venv-Umgebung und ihre Vorteile aufmerksam
Führen Sie VS Code und Remote Development in die Offline-Umgebung ein, um die Linux-Entwicklung komfortabel zu gestalten
Bearbeiten und debuggen Sie den Code in Raspberry Pi mit der SSH-Verbindungsfunktion von VSCode
Erhalten Sie Kommentare und Abonnenten mit der YouTube-Daten-API
Installieren Sie Ubuntu 20.04 mit GUI und bereiten Sie die Entwicklungsumgebung vor
Erstellen Sie eine Go-Entwicklungsumgebung mit den Remote-Containern von VS Code
Einstellungen zum Eingeben und Debuggen des Inhalts der Bibliothek mit VS-Code
Die Geschichte, dass Python nicht mehr mit VS Code (Windows 10) arbeitet
Komfortables LaTeX mit Windows-Subsystem für Linux und VS-Code
So gelangen Sie mit Vagrant in die Python-Entwicklungsumgebung
Systemhandel ab Python3: Holen Sie sich den neuesten Programmcode
Machen Sie ein BLE-Thermometer und ermitteln Sie die Temperatur mit Pythonista3
Erstellen Sie eine Python-Umgebung mit WSL + Pyenv + Jupyter + VSCode
Holen Sie sich den Ländercode mit Python
Python mit VSCode (Windows 10)
Debuggen Sie Python mit VS-Code
Überprüfen Sie den Code mit flake8
Die stärkste Möglichkeit, MeCab und CaboCha mit Google Colab zu verwenden
Debug-Einstellungen in der virtuellen Umgebung bei Verwendung von Pipenv mit VSCode
Erstellen Sie eine Entwicklungsumgebung mit Jupyter und Flask mit Python in Docker (unterstützt sowohl VS Code als auch Code-Server).
QR-Code mit CNN entschlüsseln
Beginnen Sie mit Python! ~ ① Umweltbau ~
Holen Sie sich das Wetter mit Python-Anfragen
Holen Sie sich das Wetter mit Python-Anfragen 2
Versuchen Sie, Jupyter mit VS-Code auszuführen
Holen Sie sich eine Adresse aus einer Postleitzahl
Installieren Sie Python mit Mac vs Code
Bereiten Sie die Entwicklungsumgebung mit anyenv vor
Erstellen einer Umgebung mit pyenv und pyenv-virtualenv
Bereiten Sie mit venv mit VS Code eine virtuelle Python-Umgebung für Ihr Projekt vor
Ich war süchtig danach, eine Python-Venv-Umgebung mit VS Code zu erstellen
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
Vorgehensweise zum Erstellen einer virtuellen Python-Umgebung mit VS-Code unter Windows
Bearbeiten Sie die Datei des SSH-Verbindungszielservers auf dem Server mit VS-Code
Ich habe Umgebungsvariablen in Docker festgelegt und in Python angezeigt.
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Codebeispiel zum Abrufen von oauth_token und oauth_token_secret der Twitter-API in Python 2.7
Abrufen und Konvertieren der aktuellen Zeit in der lokalen Systemzeitzone mit Python
Lesen Sie das Diagrammbild mit OpenCV und ermitteln Sie die Koordinaten des Endpunkts des Diagramms
Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python
Erhalten und schätzen Sie die Form des Kopfes mit Dlib und OpenCV mit Python
VS Code friert ein und der PC stürzt ab, wenn der Server mit go gestartet wird