VS Code "Oui. Si c'est" Développement à distance "."
Je "Quoi ... quoi ..."
VSCode "Étant donné que nous déboguerons avec docker-compose, commencez par créer l'environnement en vous référant à l'article facile à comprendre ci-dessous."
J'ai dit: "C'est du miso."
VSCode "La structure des dossiers doit être la suivante."
tree
containers
├── django
│ ├── Dockerfile
│ ├── Pipfile
│ ├── Pipfile.lock
│ ├── config
│ │ ├── __init__.py
│ │ ├── asgi.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ ├── db.sqlite3
│ ├── entrypoint.sh
│ ├── manage.py
│ └── static
├── docker-compose.yml
├── nginx
│ ├── Dockerfile
│ └── nginx.conf
└── postgres
├── Dockerfile
└── sql
└── init.sql
VSCode "Hondara, ouvrez le répertoire des conteneurs Wai (VSCode)."
Je «Aiyo».
VSCode "Développement à distance est installé. Une marque bleue comme celle-ci apparaît en bas à gauche. Si l'installation est terminée
VSCode "Ensuite, ajoutez des fichiers de configuration pour le débogage."
VS Code "Cliquez sur l'icône bleue qui apparaît."
Je «Aiyo».
VSCode "Ensuite, le menu apparaîtra ci-dessus? Sélectionnez Conteneurs distants: Ajouter les fichiers de configuration du conteneur de développement ...
à partir du milieu. "
VS Code "Après cela, sélectionnez` From'docker-compose.yml". "
--Sélectionnez le service que vous souhaitez déboguer (Django cette fois)
VSCode "Ensuite, le répertoire .devcontainer
sera créé à la racine du projet, et devcontainer.json
et docker-compose.yml
y seront créés, alors réécrivez devcontainer.json
comme suit!"
VSCode "Si vous souhaitez utiliser cette zone dans la pratique, remplacez-la par un environnement arbitraire!"
Je suis accro au fichier de paramètres, donc je ne suis pas sûr. "
devcontainer.json
{
//Entrez n'importe quel nom
"name": "djnago containers",
//Docker pour créer le conteneur auquel vous souhaitez vous connecter avec Remote-Veuillez spécifier un fichier de composition.
"dockerComposeFile": "docker-compose-debug.yml",
//Sélectionnez le service que vous souhaitez démarrer
"service": "django",
//Le premier spécifié ici lors de l'entrée dans le conteneur sera le répertoire courant
"workspaceFolder": "/usr/src/app/",
//Sélectionnez une coque
"settings": {
"terminal.integrated.shell.linux": "/bin/bash"
},
//Sélectionnez l'extension vscode
"extensions": ["ms-azuretools.vscode-docker", "ms-python.python"],
//Définir le comportement du conteneur lorsque vscode est fermé
//Continuez à démarrer le conteneur avec aucun
"shutdownAction": "none"
}
VSCode "Ensuite, réécrivez en yml pour le débogage! Modifiez le docker-compose.yml
généré automatiquement dans le répertoire .devcontainer
en docker-compose-debug.yml
et l'existant Copiez le contenu de docker-compose.yml
. "
VSCode "A ce stade, il y a trois services, django
, postgres
et nginx
, mais comme vous n'avez pas à les livrer de nginx à chaque fois que vous déboguez, modifiez-les comme suit. Veuillez le changer comme vous le souhaitez. "
--Correction
docker-compose-debug.yml
version: '3.7'
services:
django:
container_name: django
build: ../django
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- ../django:/usr/src/app/
ports:
- 8000:8000
#Ajouter un port pour le débogage
- 8888:8888
env_file:
- ../django/.env
depends_on:
- postgres
postgres:
container_name: postgres
build: ../postgres
volumes:
- sample_postgis_data:/var/lib/postgresql/data
- ../postgres/sql:/docker-entrypoint-initdb.d
env_file: ../postgres/.env_db
ports:
- 5433:5432
volumes:
sample_postgis_data:
VSCode "Maintenant, ce devrait être un répertoire comme celui-ci."
Je «Seyana».
tree
containers
├── .devcontainer
│ ├── devcontainer.json
│ └── docker-compose-debug.yml
├── django
│ ├── .env
│ ├── Dockerfile
│ ├── Pipfile
│ ├── Pipfile.lock
│ ├── config
│ │ ├── __init__.py
│ │ ├── asgi.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ ├── db.sqlite3
│ ├── entrypoint.sh
│ ├── manage.py
│ └── static
├── docker-compose.yml
├── nginx
│ ├── Dockerfile
│ └── nginx.conf
└── postgres
├── .env_db
├── Dockerfile
└── sql
└── init.sql
VSCode "Je suis enfin en train de déboguer, mais si vous avez déjà démarré le conteneur avec docker-compose.yml
, arrêtez-le temporairement. Je reconstruirai le conteneur au moment du débogage, mais le fichier yml d'origine est le même Parce que j'utilise, les noms sont en conflit et il devient difficile de bien démarrer. "
VSCode "Après avoir confirmé l'arrêt, appuyez sur l'icône bleue ci-dessous, puis cliquez surRemote-Containers: Open Folder in Containers ...
, et le répertoire où .devcontainer
existe ( containers
dans cet exemple) Veuillez sélectionner. "
VSCode "Au fait, si le conteneur est déjà démarré, vous pouvez vous connecter au conteneur qui est déjà en cours d'exécution en sélectionnant" Conteneurs distants: Attacher aux conteneurs en cours d'exécution ... ", mais les paramètres créés dans" devcontainer.json "sont reflétés. Veuillez noter que l'extension ne sera pas installée. "
I "C'est aussi un point addictif. Memo Memo ..."
VSCode "Lorsque vous sélectionnez un répertoire, une nouvelle fenêtre s'ouvre et l'affichage suivant apparaît en bas à droite de l'écran. Attendez un moment pendant que le conteneur est en cours d'exécution."
J'ai dit: "C'est assez long. Soyons patients. Je déteste l'impatience."
VSCode "En passant, si vous cliquez sur" Démarrer avec Dev Container "en lettres bleues, vous pouvez voir le journal du processus requis pour démarrer le conteneur en temps réel. Si une erreur se produit, il s'arrêtera, mais vous pouvez voir ce qui ne va pas avec ce journal."
VSCode "Eh bien, généralement le chemin est incorrect ou le nom est en conflit."
VSCode "Lorsqu'il démarre en toute sécurité, le répertoire à l'intérieur du conteneur est affiché, et le shell ouvre également le répertoire spécifié en tant que répertoire courant, et vous pouvez confirmer qu'il est attaché au conteneur démarré."
VS Code "Extension installée."
J'ai dit: "En premier lieu, vous devez écrire explicitement l'extension que vous souhaitez installer dans devcontainer.json
..."
VSCode "Cliquez sur l'icône Exécuter et déboguer
et cliquez sur créer un fichier launch.json
..."
VSCode "Cliquez ensuite sur Docker Debug ins Container
..."
VSCode "L'écran d'édition de launch.json
s'ouvre, alors éditez-le comme suit et terminez!"
launch.json
{
"version": "0.2.0",
"configurations": [
{
//Afficher un nom
"name": "django container",
//Langue
"type": "python",
//Comportement lors du débogage. Outre l'exécution
"request": "launch",
//Chemin d'accès au fichier pour travailler
"program": "${workspaceFolder}/manage.py",
//Sélectionnez le terminal à utiliser pour le débogage. Vous pouvez également lancer un terminal en dehors de VS Code
"console": "integratedTerminal",
//Arguments lors de l'exécution du programme
"args": [
"runserver",
"--noreload",
"0.0.0.0:8888"
],
"django": true
}
]
}
VSCode "Sélectionnez l'interpréteur en bas à gauche de l'écran pour exécuter le programme à la fin (dans cet exemple, sélectionnez python3.8)"
VSCode "Lorsque tous les paramètres sont terminés, les éléments de Exécuter et déboguer
seront les suivants, et en cliquant sur l'icône du triangle vert comme le bouton de lecture, déboguer avec le 0.0.0.0: 8888
spécifié Le serveur va démarrer. "
VSCode "Si vous vous connectez à localhost: 8888
depuis le navigateur après avoir appuyé sur le bouton, vous devriez pouvoir voir l'écran habituel."
Je «honmaya».
VSCode "Après cela, si vous définissez un point d'arrêt à l'endroit où vous souhaitez déboguer et accéder à l'URL où la fonction avec le point d'arrêt est exécutée à partir du navigateur, etc., vous pouvez voir le contenu de la requête et vérifier les variables sur VScode. Fais le! "
VSCode "Si vous recherchez" VSCode Debug "sur Google, il y aura de nombreuses méthodes détaillées, alors vérifiez-le!"
J'ai dit: "VS Code Dieu!
Oshimai