Cet article est un groupe d'articles liés à ** Apprenez à utiliser Docker via la construction d'environnement Django + MySQL ** ** Part.4 ** Cela correspond à.
Dans cet article, nous initialiserons le projet django et essayerons d'exécuter le serveur de développement en utilisant le fichier docker-compose.yml
précédemment créé.
Avant de modifier settings.py
, créez local_settings.py
dans le même répertoire que settings.py
.
Si vous souhaitez publier sur GitHub
etc., supprimez ce fichier de la cible de gestion.
config/local_settings.py
SECRET_KEY_LS = '**************************************************'
DB_NAME = "************"
DB_USER = "************"
DB_PASSWORD = "************"
La SECRET KEY
de config / settings.py
générée au moment de l'exécution de $ django-admin start project
est définie sur SECRET_KEY_LS
, et la description est déplacée ici.
Pour DB_NAME
, DB_USER
et DB_PASSWORD
, décrivez le même contenu que le fichier .env
créé la dernière fois et lors de la connexion de Django à la base de données du conteneur MySQL, à partir de settings.py
comme suit. Importez et utilisez.
Modifiez settings.py
.
config/settings.py
import os
import from .local_settings import SECRET_KEY_LS, DB_NAME, DB_USER, DB_PASSWORD
# (Omission)
SECRET_KEY = SECRET_KEY_LS
Tout d'abord, importez les variables nécessaires, etc., et remplacez «SECRET_KEY_LS» par «SECRET_KEY».
Ajoutez ensuite 127.0.0.1
et localhost
au même fichier ʻALLOWED_HOSTS`.
config/settings.py
ALLOWED_HOSTS = ["127.0.0.1", "localhost"]
Le contenu de "" localhost "" est le même car le nom est résolu en "" 127.0.0.1 "" par la description dans "~ / etc / hosts" dans le conteneur, mais pour des raisons de convivialité, les deux sont enregistrés ici. Je le ferai.
Le serveur d'applications lui-même fonctionne sur 0.0.0.0
comme spécifié par command
dans docker-compose.yml
, mais en limitant la description ici à localhost
, ** à partir d'une autre machine que la machine hôte. Vous devriez pouvoir lire la connexion **. (Tant que j'essayais de me connecter à partir d'un autre terminal sous le même environnement WiFi, il semblait que les paramètres étaient comme prévu.)
Enfin, modifiez les éléments liés aux paramètres de connexion à la base de données. J'ai déjà importé ce dont j'ai besoin de local_settings.py
plus tôt, donc j'applique simplement chacun.
config/settings.py
# Database
DATABASES = {
'default': {
'ENGINE': "django.db.backends.mysql",
'NAME': DB_NAME,
'USER': DB_USER,
"PASSWORD": DB_PASSWORD,
'HOST': "db",
"PORT": "3306"
}
}
Pour la partie HOST
, vous pouvez entrer le ** nom du service MySQL ** nommé dans docker-compose.yml
, donc ici c'est" "db" .
PORT a été spécifié avec la valeur par défaut MySQL
3306` comme auparavant.
Ceci termine les réglages de base.
Avec les paramètres jusqu'à présent, tout, du ** lancement de l'image et du conteneur à l'exécution du serveur Django **
$ docker-compose up
Vous devriez pouvoir le faire avec une seule commande.
Cependant, lorsque je l'exécute, je rencontre des problèmes dans certaines conditions. À ce sujet, le prochain article "5. Ajustez le délai de démarrage du conteneur entre les services dépendants" Prière de se référer à.
En tant que journal au moment de l'exécution du serveur
djst_django | Starting development server at http://0.0.0.0:8000/
djst_django | Quit the server with CONTROL-C.
Cependant, en raison du réglage, le contrôle de fonctionnement réel n'est pas le http: //0.0.0.0: 8000 /
affiché, mais ** http: //172.0.0.1: 8000 /
ouhttp. Cela se fera depuis: // localhost: 8000 /
**.
django_starter
├── .venv
│ └── (Abréviation)
├── config
│ ├── __init__.py
│ ├── asgi.py
│ ├── local_settings.py <- New!
│ ├── settings.py
│ ├── urls.py
│ ├── wait_for_db.py <-Voir un autre article
│ └── wsgi.py
├── mysql
│ ├── data <-Généré automatiquement
│ │ └── (Abréviation)
│ └── my.cnf
├── .env
├── docker-compose.yml
├── Dockerfile
├── manage.py
└── requirements.txt
Enfin, écrivez vos commandes préférées ici.
# $ pwd
# (Abréviation)/django_starter/
#commandes liées à django( shell,migrer etc.)
$ docker-compose run web python manage.py [command]
#Exécuter le serveur de développement
$ docker-compose up
#Mise à jour du package
(.venv) $ pip install [nom du paquet]
(.venv) $ pip freeze >> requirements.txt
#Entrez dans le conteneur
$ docker-compose run --rm web /bin/bash #Entrez avec bash
#Ou...
$ docker-compose up -d #Après avoir couru en arrière-plan...
$ docker exec -it [Nom du conteneur] /bin/bash #Entrez avec bash
#Arrêter le conteneur
$ docker-compose down
Ceci complète l'objectif de ce groupe d'articles, ** Construire un environnement Django + MySQL à l'aide de docker-compose **. Après cela, je gérerai et utiliserai le référentiel de modèles Django avec les paramètres du front-end à mon goût.
En tant qu'impression sur laquelle j'ai travaillé, pour moi-même en tant que débutant, c'est devenu une chance d'apprendre non seulement Docker mais aussi les bases du terminal et des réseaux **, et je sens que j'ai beaucoup appris en l'essayant. .. Cependant, en regardant les journaux qui circulent encore vers le terminal (en particulier pour MySQL), il y a beaucoup de choses à améliorer ... Je souhaite continuer à apprendre et viser un état dans lequel je peux l'utiliser sous une forme plus adaptée aux batailles réelles, comme son utilisation dans un environnement de production, tel qu'Amazon ECS.
Merci de visiter notre site.
.
Recommended Posts