Déboguer à distance l'environnement Django créé avec docker-compose avec VS Code

Préparer l'environnement Django avec docker-compose

Créez les fichiers requis

Créez Dockerfile, docker-compose.yaml, requirements.txt en vous référant à Démarrage rapide: Compose et Django.

Dockerfile


FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/

Je veux accéder à postgres avec un outil, je publie donc l'article. Ensuite, postgres était en colère de ne pas avoir le mot de passe du superutilisateur, il a donc répondu avec la variable d'environnement dans le message d'erreur. Bien sûr, il est préférable de définir le mot de passe du super utilisateur, mais cette fois c'est un bon environnement pour se déplacer, donc c'est facile.

docker-compose.yaml


services:
  db:
    image: postgres
    environment:
      POSTGRES_HOST_AUTH_METHOD: "trust"
    ports:
      - "5432:5432"
  web:
    build: .
    command: python3 manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

requirements.txt a tenté de supprimer la spécification de version de Django.

requirements.txt


Django
psycopg2

Essayez de bouger

Créez un projet.

docker-compose run web django-admin.py startproject composeexample .

Définissez la base de données. Essayez de vous connecter à Postgres.

composeexample/settings.py


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}

Démarrez le serveur!

docker-compose up

Exécutez localhost: 8000 depuis le navigateur, et si la page django est affichée, cela réussit.

Afficher la page de gestion

Je ne sais pas si je suis vraiment connecté à postgres, alors affichons la page de gestion.

migration

Créez les tables système dont Django a besoin.

docker-compose run web python3 manage.py makemigrations
docker-compose run web python3 manage.py migrate

Créé par l'administrateur

Créez un utilisateur pour vous connecter à la page d'administration.

docker-compose run web python3 manage.py createsuperuser
Username (leave blank to use 'root'): 
Email address: [email protected]
Password: 
Password (again): 

Connectez-vous à la page d'administration

Lancer localhost: 8000 / admin depuis votre navigateur affichera la page de connexion. Essayez de vous connecter avec le superutilisateur que vous venez de créer. OK si vous pouvez vous connecter.

Paramètres de débogage à distance

Comme condition préalable, il est supposé que Remote Development est installé dans VS Code.

Ajouter un fichier de configuration

  1. Cliquez sur le bouton Remote Host (marque en bas à gauche du VS Code)
  2. Sélectionnez Remote-Containers: Add Development Container configuration Files ...
  3. Sélectionnez From'docker-compose.yaml'
  4. Sélectionnez web

Modifiez le fichier devcontainer.json résultant pour l'attacher au conteneur pour le débogage à distance. Le docker-compose.yml créé avec lui n'a pas besoin d'être modifié.

json:.devcontainer/devcontainer.json


{
	"name": "Existing Docker Compose (Extend)",
	"dockerComposeFile": [
		"../docker-compose.yaml",
		"docker-compose.yml"
	],
	"service": "web",
	"workspaceFolder": "/workspace",
	"settings": {
		"terminal.integrated.shell.linux": "/bin/bash"
	},
	//Ajout d'extensions Docker et python
	"extensions": [
		"ms-azuretools.vscode-docker",
		"ms-python.python"
	],
	//Arrêtez le conteneur à la fin de VS Code
	"shutdownAction": "stopCompose",
}

Se connecter au conteneur

Enregistrez l'espace de travail ici. S'il ne s'agit pas d'un espace de travail, une erreur se produira à l'étape suivante.

  1. Cliquez sur le bouton Hôte distant
  2. Cliquez sur "Remote-Containers: Open Folder in Containers ..."
  3. Sélectionnez le répertoire dans lequel réside le .devcontainer

Débogage à distance

  1. Cliquez sur l'icône d'exécution sur le côté gauche de l'écran
  2. Cliquez sur Créer un fichier launch.json
  3. Sélectionnez Docker Debug in Container

Modifiez le fichier launch.json créé.

json:.vscode/launch.json


{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "django container",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/manage.py",
            "console": "integratedTerminal",
            "args": [
                "runserver",
                "--noreload",
                "0.0.0.0:8888"
            ],
            "django": true
        }
    ]
}

Puisque l'interpréteur est défini, créez .vscode / settings.json et effectuez les réglages suivants.

{
    "python.pythonPath": "/usr/local/bin/python"
}

Recommended Posts

Déboguer à distance l'environnement Django créé avec docker-compose avec VS Code
Déboguer Python avec VS Code
[Venv non requis] L'environnement de développement Python le plus puissant créé avec des conteneurs distants [VS Code / Docker]
Paramètres de débogage dans un environnement virtuel lors de l'utilisation de Pipenv avec VSCode
Déboguer avec VS Code en utilisant Boost Python Numpy
Utiliser Python dans un environnement Anaconda avec VS Code
Créer un environnement d'exécution python avec VS Code
Compilation croisée de Raspberry Pi et création d'un environnement de développement de débogage à distance avec VS Code
Modèle de construction d'environnement de développement local Python [Flask / Django / Jupyter avec Docker + VS Code]
Créer un environnement django avec docker-compose (MariaDB + Nginx + uWSGI)
[Django] Créez rapidement un environnement de développement de conteneur Django (Docker) à l'aide de VS Code + Remote Containers
Python avec VSCode (Windows 10)
Environnement de site Web de configuration minimale avec django
Essayez d'exécuter python dans l'environnement Django créé avec pipenv
Créez un environnement de développement Django avec Docker! (Docker-compose / Django / postgreSQL / nginx)
Essayez Fortran avec VS Code pour déboguer les paramètres. [Win10]
Créez un environnement de développement Go avec les conteneurs distants de VS Code
Créer un environnement Python avec WSL + Pyenv + Jupyter + VSCode
I "Un éditeur qui ne peut pas faire de débogage à distance de Django ..." VS Code "C'est possible." ~ Édition Docker-compose ~
Construction de l'environnement de développement Django avec Docker-compose + Nginx + uWSGI + MariaDB (édition macOS)
Comment développer des conteneurs sur des serveurs distants avec VS Code Remote-Containers
Installez python avec mac vs code
Comment créer un environnement d'exécution Python et Jupyter avec VSCode
[DynamoDB] [Docker] Créer un environnement de développement pour DynamoDB et Django avec docker-compose
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
Procédure de création d'un environnement virtuel Python avec VS Code sous Windows
Environnement CSS créé en 10 minutes avec Django
Créez un environnement d'API rapide avec docker-compose
Passez PYTHONPATH en 1 minute avec VS Code
Afficher le graphique japonais avec VS Code + matplotlib
Pylint de VSCode est ennuyeux avec l'importation! !! !! !!
Construction d'un environnement d'analyse de données Python facile avec Windows10 Pro x VS Code x Docker
VS Code + Azure Functions + Procédure de construction de l'environnement Python
Je ne peux pas créer de projet avec Python3.5 (Windows) + django1.7.1.
Créer un environnement de développement Python avec Visual Studio Code
Démarrez Django dans un environnement virtuel à l'aide de Pipenv
J'ai essayé Flask avec des conteneurs distants de VS Code
[Python] Créer un environnement de développement Django avec Docker
Créez un environnement Django avec Vagrant en 5 minutes
Créer un environnement de Nginx + uWSGI + Python (Django) avec docker
Créer un environnement de développement Django à l'aide de Doker Toolbox
Liste de tâches simple créée avec Python + Django
Créez rapidement un environnement Python Django avec IntelliJ
Utilisez le conteneur de développement Docker facilement avec VS Code
Configurer l'environnement de développement TinyGo pour VS Code
J'ai essayé de créer un environnement avec WSL + Ubuntu + VS Code dans un environnement Windows
Modifiez et déboguez le code dans Raspberry Pi avec la fonction de connexion SSH de VSCode
Procédure d'attachement et de débogage de VS Code vers Jupyter Lab sur un serveur distant
Construction d'environnement pour ceux qui veulent étudier Python facilement avec VSCode (pour Mac)