Versionsunterschiede sind häufig.
Und vor allem ist die Installation mühsam. Und Knoten und Maven drücken die lokale Umgebung ständig zusammen.
Und das Problem der Umweltunterschiede zwischen Mac und Windows, das auftritt.
Letztendlich wird aufgrund eines Umgebungseinstellungsfehlers eine andere Version verwendet.
devcontainer ist eine Technologie zum Erstellen einer Entwicklungsumgebung auf Docker und zum Ausführen der gesamten Entwicklung dort.
Es ist auch die Kerntechnologie bei der Verwendung von GitHub-Codespaces (Visual Studio-Codespaces).
Um es einfach auszudrücken: Wir werden eine virtuelle Maschine für die Entwicklung im Inneren erstellen
Es ist ein wenig ungeeignet für die Entwicklung von GUI-Apps wie Windows App und Mobile, Dies ist im Grunde genug für das Web-System.
Wenn Sie also etwas wie Node, Ruby oder Python mit VS Code ausführen möchten, können Sie dies mit devcontainer tun.
Dieses Mal wird angenommen, dass als Beispiel nodejs + Express + mongodb verwendet wird. Mongo wird jedoch nur aufstehen und nicht wirklich darauf zugreifen.
Erstellen Sie ein Verzeichnis mit dem Namen .devcontainer und speichern Sie darin Informationen zu devcontainer.json und Docker-Containern.
Root Directory
├ .devcontainer
│ ├ devcontainer.json
│ ├ docker-compose.yml
│ └ Dockerfile
└ Jede Quelle
Enthält Informationen zum Container und zum VS-Code, der dort ausgeführt wird.
json:.devcontainer/devcontainer.json
{
//Containername
"name": "Express Sample",
// docker-Dateinamen verfassen
"dockerComposeFile": "docker-compose.yml",
//Das Stammverzeichnis des Projekts, das an den Container angehängt ist
"workspaceFolder": "/work",
// docker-Wenn compose mehrere Container enthält
//Geben Sie an, welcher Container eingegeben werden soll
"service": "app",
//Anschluss von außen(Port öffnen)Angeben
"appPort": 3000,
//Stellen Sie die zu installierende Erweiterung ein
"extensions": [
"VisualStudioExptTeam.vscodeintellicode",
"dbaeumer.vscode-eslint",
"stevencl.addDocComments",
"eg2.tslint"
]
}
Die hier aufgeführten Erweiterungen werden in einem anderen Bereich als der Host-VSCode installiert.
Selbst wenn Sie zu einer anderen Sprache / Plattform wechseln, können Sie daher vermeiden, dass der VS-Code lächerlich schwer wird.
Erstellen Sie eine Docker-Datei und docker-compose.yml. Unabhängig vom Entwicklungscontainer ist es möglich, den für die Entwicklung verwendeten so zu verwenden, wie er ist.
.devcontainer/Dockerfile
FROM node:15.2.0-alpine3.10
EXPOSE 3000
:.devcontainer/docker-compose.yml
version: '3'
services:
app:
build: .
ports:
- 3000:3000
volumes:
- ../:/work
tty: true
db:
image: mongo:3.6.20-xenial
#Normalerweise sind ein Port und ein Volume-Attach erforderlich.
Wird es erneut geöffnet, wenn der Bildschirm neu geladen wird? Wird gefragt, wählen Sie "In Container erneut öffnen".
Danach wird der Bildschirm neu geladen und Sie können das Bild erweitern und den Container generieren. VSCode-bezogene Installationen werden ebenfalls ausgeführt. Seien Sie also geduldig.
Überprüfen Sie nach erfolgreichem Start, ob der Knoten ausgeführt wird.
Zu diesem Zeitpunkt zeigt das VS-Code-Terminal auf das Docker-Container-Terminal Verwenden Sie dieses Terminal grundsätzlich im VS-Code.
npm init und erstelle package.json.
# npm init -y
# nom install -S express
Schreiben Sie als Nächstes den folgenden Code.
index.js
'use strict'
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
app.get('/', (req, resp) => {
resp.send('Hello, JS WORLD!');
})
app.listen(port, () =>{
console.log(`Example app listening on Port ${port}`);
});
Ich werde es versuchen.
# node index.js
node index.js
Example app listening on Port 3000
Lassen Sie uns in diesem Zustand eine Verbindung vom Host herstellen.
Wenn es gut angezeigt wird, ist es vollständig.
Danach können Sie mit der Entwicklung auf die gleiche Weise wie mit normalem VS-Code fortfahren.
Selbst wenn Sie es für andere Entwickler bereitstellen möchten, können Sie es problemlos erstellen, solange Sie einen Entwicklungscontainer erstellen.
Sie benötigen lediglich VS-Code und Erweiterungen für die Remote-Entwicklung.
Diesmal habe ich es mit node.js gemacht, aber die grundlegende Verwendung ist für Python, Ruby und Java dieselbe.
Wenn Sie nur die folgenden zwei Punkte beachten, werden Sie grundsätzlich keine Probleme haben.
Da die Umgebung und Version für jeden Container getrennt werden können, Es ist sicherer, Versionsprobleme zu lösen, als xEnv zu verwenden.
Wenn Sie Docker als Entwicklungsumgebung verwenden, müssen Sie nur einen einfachen JSON schreiben.
Wenn Sie VS Code verwenden, können Sie devcontainer verwenden, um die Erstellung Ihrer Umgebung zu vereinfachen.
Recommended Posts