Les différences de version sont courantes.
Et surtout, l'installation est gênante. Et node et maven écrasent régulièrement l'environnement local.
Et le problème de la différence environnementale entre Mac et Windows qui se produit.
En fin de compte, une version différente sera utilisée en raison d'une erreur de réglage d'environnement.
devcontainer est une technologie permettant de créer un environnement de développement sur Docker et d'y effectuer tous les développements.
C'est également la technologie de base lors de l'utilisation des espaces de codes GitHub (espaces de codes Visual Studio).
Pour faire simple, nous allons créer une machine virtuelle pour le développement à l'intérieur, donc
Il est un peu inapproprié pour développer des applications GUI telles que Window App et mobile, C'est fondamentalement suffisant pour le système Web.
Par conséquent, si vous souhaitez exécuter quelque chose comme node, Ruby ou Python avec VS Code, vous pouvez le faire avec devcontainer.
Cette fois, nous supposerons que vous utilisez nodejs + Express + mongodb comme exemple. Cependant, mongo ne fera que se lever et n'y accédera pas réellement.
Créez un répertoire appelé .devcontainer et stockez-y des informations sur devcontainer.json et les conteneurs docker.
Root Directory
├ .devcontainer
│ ├ devcontainer.json
│ ├ docker-compose.yml
│ └ Dockerfile
└ Chaque source
Contient des informations sur le conteneur et le code VS qui y s'exécute.
json:.devcontainer/devcontainer.json
{
//Nom du conteneur
"name": "Express Sample",
// docker-composer le nom du fichier
"dockerComposeFile": "docker-compose.yml",
//Le répertoire racine du projet attaché au conteneur
"workspaceFolder": "/work",
// docker-Si composer est plusieurs conteneurs
//Spécifiez dans quel conteneur entrer
"service": "app",
//Port pour se connecter de l'extérieur(Port ouvert)Spécifier
"appPort": 3000,
//Définissez l'extension à installer
"extensions": [
"VisualStudioExptTeam.vscodeintellicode",
"dbaeumer.vscode-eslint",
"stevencl.addDocComments",
"eg2.tslint"
]
}
Les extensions répertoriées ici seront installées dans une zone différente de celle du VSCode hôte.
Par conséquent, même si vous passez à une langue / plate-forme différente, vous pouvez éviter que le code VS ne devienne ridiculement lourd.
Créez un Dockerfile et un docker-compose.yml. Quel que soit le conteneur de développement, il est possible d'utiliser celui utilisé pour le développement tel quel.
.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
#Normalement, une connexion de port et de volume est requise.
Se rouvre-t-il lorsque l'écran est rechargé? Est demandé, alors sélectionnez "Rouvrir dans le conteneur"
Après cela, l'écran sera rechargé et vous pourrez développer l'image et générer le conteneur. Les installations liées à VSCode seront également exécutées, alors soyez patient.
Une fois le démarrage réussi, vérifiez que le nœud est en cours d'exécution.
À ce stade, le terminal VS Code pointe vers le terminal de conteneur docker, donc En gros, veuillez utiliser ce terminal dans VS Code.
npm init et créez package.json.
# npm init -y
# nom install -S express
Ensuite, écrivez le code suivant.
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}`);
});
Je vais essayer.
# node index.js
node index.js
Example app listening on Port 3000
Connectons-nous depuis l'hôte dans cet état.
S'il est bien affiché, il est complet.
Après cela, vous pouvez procéder au développement de la même manière que le code VS normal.
Même si vous souhaitez le déployer sur d'autres développeurs, vous pouvez facilement le créer tant que vous créez un conteneur de développement.
Tout ce dont vous avez besoin est VS Code et des extensions pour le développement à distance.
Cette fois, je l'ai fait avec node.js, mais l'utilisation de base est la même pour Python, Ruby et Java.
En gros, si vous ne faites attention qu'aux deux points suivants, vous ne serez pas en difficulté.
Étant donné que l'environnement et la version peuvent être séparés pour chaque conteneur, Il est plus sûr de résoudre les problèmes de version que d'utiliser xEnv.
De plus, si vous utilisez Docker comme environnement de développement, il vous suffit d'écrire un simple json.
Si vous utilisez VS Code, pourquoi ne pas utiliser devcontainer pour simplifier la construction de votre environnement?
Recommended Posts