Introduction
La migration des données est souvent une étape nécessaire pendant le développement et le déploiement d'applications PHP. La migration des données existantes vers un nouvel environnement nécessite non seulement d'assurer l'intégrité des données, mais également d'assurer l'efficacité et la stabilité du processus. Cela peut être réalisé facilement en utilisant la combinaison de Docker Compose, Nginx et MariADB. Cet article présentera en détail comment utiliser ces outils pour migrer les données vers des applications PHP via des étapes de fonctionnement spécifiques et des exemples de configuration.
Préparation
Docker Compose est un outil de gestion des applications multi-continents qui peut définir et démarrer uniformément plusieurs services via un fichier de configuration. Nginx sert de serveur proxy inversé pour transférer les demandes HTTP au conteneur PHP correspondant. MARIADB est notre service de base de données qui stocke les données d'application. Tout d'abord, nous devons créer un fichier Docker Compose pour définir le service.
Configuration de la composition de Docker
Dans le fichier de configuration Docker Compose, nous devons définir deux services: Nginx et MariADB. Voici un exemple de configuration de base:
Version: '3'
services:
nginx:
Image: nginx
PORTS:
- 80:80
Volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
Mariadb:
Image: Mariadb: 10.5
environnement:
- mysql_root_password = secret
Volumes:
- ./data:/var/lib/mysql
Dans cette configuration, le service NGINX utilisera le Mirror officiel et le port de carte 80 sur le port hôte. Le service MARIADB utilise l'image officielle MARIADB et définit le mot de passe de l'utilisateur racine via des variables d'environnement. Le répertoire de données est également monté pour un stockage persistant.
Configuration Nginx
Ensuite, nous devons configurer Nginx pour nous assurer qu'il peut transmettre correctement les demandes HTTP au conteneur d'application PHP. Voici un exemple simplifié de la configuration `nginx.conf`:
serveur {
Écoutez 80;
server_name localhost;
emplacement / {
proxy_pass http: // php-app;
proxy_set_header host $ host;
}
}
Ici, nous transférons toutes les demandes HTTP à un conteneur PHP nommé PHP-App et passons les informations d'en-tête hôte demandées.
Démarrer le service
Une fois la configuration terminée, le service peut être démarré avec la commande suivante:
docker-compose up -d
Cela commencera le conteneur Docker pour Nginx et MariADB. Vous pouvez vérifier que Nginx fonctionne correctement en visitant http: // localhost .
Migration des données
Supposons que vous ayez déjà un fichier d'exportation `backup.sql` de la base de données MySQL et que vous souhaitez maintenant l'importer dans le conteneur MARIADB. Vous pouvez terminer l'importation de la base de données via la commande suivante:
docker exec -i<mariadb_container_name> mysql -uroot -p<password> <Backup.sql
Dans cette commande, est le nom du conteneur mariaDB. Il s'agit du mot de passe de l'utilisateur racine, et Backup.sql est le fichier de sauvegarde de la base de données que vous souhaitez importer.
Sauvegarde régulière
Pour effectuer régulièrement des sauvegardes de données, vous pouvez écrire un simple script de shell:
#! / bin / bash
docker<mariadb_container_name> mysqldump -uroot -p<password><database_name> > backup.sql
Ce script crée un fichier de sauvegarde nommé backup.sql , où est le nom du conteneur mariaDB. C'est le mot de passe racine. C'est le nom de la base de données que vous souhaitez sauvegarder.
Résumer
Avec Docker Compose, Nginx et MariADB, vous pouvez facilement conteneuriser les applications et bases de données PHP et activer une migration et une sauvegarde efficaces des données. Les applications conteneurisées sont non seulement pratiques pour le déploiement et la migration, mais aussi par le transfert de proxy Nginx, ce qui facilite la migration des données entre différents environnements.