Cet article est la ** partie 2 ** des articles relatifs à «Apprenez à utiliser Docker en créant l'environnement de Django + MySQL».
Dans cet article, nous envisagerons d'écrire un Dockerfile
pour créer une ** image Docker ** pour Django
.
Pour ** l'image Docker **, c'est comme (comme une "image dans ma tête") ** une petite machine dédiée pour exécuter des projets qui s'exécute sur un système d'exploitation indépendant de la machine hôte ** Je l'attrape.
Concevez l'image Python
officiellement préparée pour le projet Django
via la description dans le Dockerfile
. La description elle-même est presque la même que celle écrite dans le Document officiel. Ici, nous examinerons la signification de la description afin de pouvoir la concevoir et la personnaliser selon les besoins à l'avenir.
De plus, nous continuerons en supposant que l'installation de Docker, etc. est déjà terminée.
** Dockerfile
est créé directement sous le répertoire du projet créé Dernière fois. ** **
Tout d'abord, la description de l'ensemble du fichier est la suivante.
Dockerfile
FROM python:3.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
COPY . /code/
EXPOSE 8000
Du haut jusqu'en bas,
FROM python3.7
Sur la première ligne, ** spécifiez l'image à utiliser à partir des images déjà créées **. Python3.7
est spécifié ici en fonction de l'environnement virtuel créé dans Article précédent.
ENV PYTHONUNBUFFERED 1
Sur la deuxième ligne, ** ʻENV` spécifie la variable d'environnement **. Cela signifie que la valeur de la variable d'environnement «PYTHONUNBUFFERED» est définie sur «1». Défini pour désactiver la mise en mémoire tampon Python pour les E / S standard.
RUN mkdir /code
Sur la 4ème ligne, vous pouvez utiliser RUN
pour ** spécifier la commande à exécuter au moment de la construction **. Ici, nous créons un répertoire code
.
WORKDIR /code
Sur la 5ème ligne, ** spécifiez le répertoire de travail **. Il spécifie à partir de quel répertoire le "RUN" et le "CMD" suivants seront exécutés.
COPY requirements.txt /code/
Après un certain temps, sur la 7ème ligne, Dernière fois Copiez le ** requirements.txt
créé dans le répertoire code
**. Vous pouvez faire la même chose avec ʻADD, mais il semble que ** COPY
soit recommandé pour copier des fichiers purs ** en raison de sa polyvalence. (Se référer au document officiel](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#add-or-copy))
RUN pip install --upgrade pip
Sur la ligne 8, mettez à jour le pip
lui-même,
RUN pip install -r requirements.txt
Sur la 9ème ligne, installez les packages décrits dans le requirements.txt
que vous avez copié précédemment.
COPY . /code/
Ligne 11, cela copiera tous ** tous les répertoires / fichiers ** sous la ** racine du projet du PC hôte (Mac) ** (la hiérarchie où se trouve le Dockerfile) dans le ** conteneur qui sera généré plus tard. ** Sera.
EXPOSE 8000
Enfin, ** déclarez le numéro de port à utiliser **. ** Par convention, il s'agit souvent du nombre standard utilisé dans les bibliothèques / frameworks **, donc ici nous spécifions la valeur par défaut «8000» dans «Django». (J'ai également essayé de déclarer un autre numéro, mais cela semblait fonctionner correctement s'il était cohérent avec les arguments de la ligne de commande lors de l'exécution du serveur et la description dans docker-compose.yml
que je créerai plus tard.)
django_starter
├── config
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── Dockerfile <- New!
├── manage.py
├── .venv
│ └── (Abréviation)
└── requirements.txt
Avec cela, la description de Dockerfile
pour créer l'environnement de Django
est une pause.
Ensuite, réfléchissons à la description de docker-compose.yml
basée sur le Dockerfile
créé cette fois.
Cliquez ici pour le prochain article ↓
"3. Considérez la description de docker-compose.yml"
Merci pour votre visite.