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
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.
Je ne sais pas si je suis vraiment connecté à postgres, alors affichons la page de gestion.
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é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):
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.
Comme condition préalable, il est supposé que Remote Development est installé dans VS Code.
Remote-Containers: Add Development Container configuration Files ...
From'docker-compose.yaml'
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",
}
Enregistrez l'espace de travail ici. S'il ne s'agit pas d'un espace de travail, une erreur se produira à l'étape suivante.
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