Créer une application FLASK multi-continents à l'aide du registre des conteneurs Docker Compose et Vultr
Docker Compose permet aux utilisateurs d'exécuter et de définir les applications multi-container à l'aide d'un seul fichier de configuration. Il simplifie le processus de configuration et de gestion de plusieurs conteneurs, ce qui facilite le développement, le test et le déploiement des applications. Cet article vous guidera pour créer une application Flask avec deux conteneurs, gérer les images Docker de votre application à l'aide du registre des conteneurs Vultr (VCR) et gérer plusieurs conteneurs avec la fonctionnalité multi-container de Docker Compose.
Création de l'échantillon d'application
Les étapes suivantes vous guideront pour créer un exemple d'application:
Déployez une instance de calcul Vultr à l'aide de l'application Docker Market via le portail client Vultr.
Utilisez SSH pour accéder solidement au serveur avec des utilisateurs non ROOT sudo.
Mettez à jour le serveur.
Créez un nouveau répertoire de projet et entrez-le:
mkdir flask-redis-example cd flask-redis-example
Créez un nouveau fichier nommé app.py
:
nano app.py
Ajouter le code suivant:
from flask import Flask, render_template import redis app = Flask(__name__) redis_client = redis.Redis(host='redis', port=6379) @app.route('/') def hello(): count = redis_client.incr('hits') return render_template('index.html', count=count) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
Enregistrer et quitter le fichier. Ce code FLASK se connecte à la base de données Redis et incrémente le compteur à chaque fois que l'URL racine est accessible.
Autoriser les connexions entrantes au port 5000 et recharger le pare-feu:
sudo ufw allow 5000 sudo ufw reload
Créez un nouveau fichier nommé requirements.txt
:
nano requirements.txt
Ajouter le package suivant:
<code>flask redis</code>
Enregistrer et fermer le fichier.
Créez un autre répertoire dans le répertoire flask-redis-example
et entrez-le:
mkdir static cd static
Créez un nouveau fichier nommé styles.css
:
nano styles.css
Ajouter le code suivant:
body { font-family: Arial, sans-serif; text-align: center; background-color: #f4f4f4; margin: 0; padding: 0; } h1 { color: #333; margin-top: 50px; } p { font-size: 18px; color: #666; }
Enregistrer et quitter le fichier.
Créez un autre répertoire dans le répertoire flask-redis-example
et entrez-le:
mkdir templates cd templates
Créez un nouveau fichier nommé index.html
:
nano index.html
Ajouter le code suivant:
<!DOCTYPE html> <html> <head> <title>Flask App</title> <link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}"> </head> <body> <h1>Hello, World!</h1> <p>I have been seen {{ count }} times.</p> </body> </html>
Enregistrer et quitter le fichier.
Utilisation du registre des conteneurs Vultr
Dans cette section, vous allez créer un registre de conteneurs Vultr, télécharger votre image Docker dans le registre et configurer un fichier Docker Compose pour configurer les services des bases de données FLASK et Redis.
Déployez un registre de conteneurs Vultr.
Créer un manifeste docker dans le répertoire flask-redis-example
:
nano Dockerfile.flask
Ajouter la configuration suivante:
FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY app.py . COPY static/ ./static/ COPY templates/ ./templates/ EXPOSE 5000 CMD ["python", "app.py"]
Enregistrer et quitter le fichier.
Build Docker Image:
docker build -t flask-app .
Connectez-vous à votre registre de conteneurs Vultr:
docker login <url> -u <user> -p <password>
Assurez-vous de remplacer <url>
, <user>
et <password>
, qui sont fournis dans la section Présentation de votre registre de conteneurs Vultr.
Image de docker de balise:
mkdir flask-redis-example cd flask-redis-example
Pusing le miroir au registre des conteneurs Vultr:
nano app.py
Après avoir poussé l'image Docker, vérifiez que l'image existe dans la section "référentiel" du registre des conteneurs Vultr sur le tableau de bord Vultr.
Créez un nouveau fichier nommé docker-compose.yaml
:
from flask import Flask, render_template import redis app = Flask(__name__) redis_client = redis.Redis(host='redis', port=6379) @app.route('/') def hello(): count = redis_client.incr('hits') return render_template('index.html', count=count) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
Enregistrer et quitter le fichier. La configuration YAML ci-dessus définit deux services web
et redis
. Le service web
construit l'application FLASK à partir du répertoire actuel (.) Et cartographie le port 5000 du conteneur au port de l'hôte 5000. Il spécifie également que le service web
dépend du service redis
. redis
Le service utilise l'image officielle de Redis Docker de Docker Hub.
Build Docker Compose Fichier:
sudo ufw allow 5000 sudo ufw reload
Une fois le processus de construction terminé, visitez l'application FLASK sur http: //
Plus d'utilisation du registre des conteneurs Vultr
Best Practice
docker-compose.yaml
Les fichiers sont bien organisés et bien documentés. docker-compose up
, docker-compose down
, et docker-compose ps
pour gérer les conteneurs. Conclusion
Dans cet article, vous avez créé une application FLASK avec deux conteneurs, utilisé le registre des conteneurs Vultr pour gérer l'image Docker de l'application et profité de la fonctionnalité multi-container de Docker Compose pour gérer plusieurs conteneurs.
Cet article est parrainé par Vultr. Vultr est la plus grande plate-forme de cloud computing privée au monde. Favorite parmi les développeurs, Vultr a fourni des solutions mondiales de cloud computing flexibles et évolutives, du GPU cloud, des métaux nus et du stockage de cloud à plus de 1,5 million de clients dans 185 pays. En savoir plus sur Vultr
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!