Dans le développement PHP moderne, l'utilisation de la technologie des conteneurs pour la gestion de l'environnement est devenue de plus en plus courante. Cet article présentera comment utiliser la technologie de conteneur Docker pour créer, configurer et gérer l'environnement de développement de projets PHP.
1. Pourquoi utiliser la technologie des conteneurs pour la gestion de l'environnement
Dans le développement PHP traditionnel, afin de créer un environnement adapté au projet en cours, une grande quantité de configuration et d'installation est nécessaire. Si ces configurations sont regroupées de manière uniforme, la portabilité, la cohérence et la fiabilité pendant le développement peuvent être améliorées. Dans ce cas, le recours à la technologie des conteneurs devient un choix inévitable.
Plus précisément, les avantages de l'utilisation de la technologie des conteneurs sont les suivants :
2. Utilisez Docker pour créer un environnement de développement PHP
Docker est l'une des technologies de conteneurs les plus populaires à l'heure actuelle, cet article utilisera donc Docker pour créer un environnement de développement PHP.
Tout d'abord, vous devez installer Docker sur votre environnement local. Vous pouvez télécharger et installer la version Docker adaptée à votre machine depuis le site officiel.
Créez un fichier nommé Dockerfile dans le répertoire racine du projet et écrivez le contenu du fichier. Dockerfile est un fichier de script utilisé par Docker pour créer des images. Le contenu spécifique du Dockerfile est le suivant :
FROM php:7.4-fpm # Install dependencies RUN apt-get update && apt-get install -y git libzip-dev unzip # Install PHP extensions RUN docker-php-ext-install zip pdo_mysql # Install Composer COPY --from=composer:latest /usr/bin/composer /usr/bin/composer # Set working directory WORKDIR /app
Le sens de ce Dockerfile est de construire une nouvelle image à partir de l'image de base PHP existante. Installez ensuite les dépendances nécessaires telles que git, libzip et unzip ; installez les extensions PHP zip et pdo_mysql et enfin installez Composer ;
Notez que la commande COPY est utilisée pour copier les fichiers de l'image du compositeur vers la nouvelle image, ce qui garantit que l'outil Composer peut être utilisé normalement dans la nouvelle image.
Ensuite, vous devez utiliser Dockerfile pour créer une image Docker. Entrez le répertoire racine du projet dans le terminal, puis exécutez la commande :
docker build -t project-name .
où nom-projet est le nom de l'image Docker à créer, et le dernier "." indique le répertoire où se trouve le fichier Dockerfile. Cette commande créera une nouvelle image Docker pour le projet.
Utilisez la commande suivante pour démarrer le conteneur de la nouvelle image :
docker run -p 8000:8000 -v "$(pwd)":/app -it project-name
où "8000" est le numéro de port à exposer par le conteneur. Dans cet exemple, mappez le port 8000 du conteneur. le port 8000 de l'hôte. De plus, le paramètre -v mappe le répertoire actuel au répertoire /app dans le conteneur afin que le code PHP puisse s'exécuter dans le conteneur. Enfin, « project-name » représente le nom de l’image Docker à utiliser.
3. Utilisez Docker Compose pour gérer des projets PHP complexes
Pour les projets PHP complexes, vous devrez peut-être utiliser plusieurs services (tels que le stockage de données, le cache, le serveur Web, etc.). À l’heure actuelle, vous pouvez utiliser Docker Compose pour gérer ces services.
Docker Compose est un outil pour Docker qui peut être utilisé pour gérer plusieurs conteneurs Docker. À l'aide de Docker Compose, vous pouvez créer et configurer plusieurs conteneurs, les lier entre eux et gérer certaines tâches de déploiement courantes (telles que les volumes de données et le mappage de ports, etc.).
Docker Compose s'appuie sur un fichier de configuration nommé docker-compose.yml. Créez ce fichier dans le répertoire racine de votre projet PHP et définissez le conteneur à y créer. Voici un exemple :
version: '3.4' services: php: build: . ports: - "8000:8000" volumes: - .:/app depends_on: - db db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: app MYSQL_USER: app MYSQL_PASSWORD: secret volumes: - db_data:/var/lib/mysql volumes: db_data:
Ce fichier définit deux services : php et db.
Le service php utilise le Dockerfile créé précédemment pour créer une nouvelle image, puis mappe le port 8000 du conteneur au port 8000 de l'hôte et mappe le répertoire actuel au répertoire /app dans le conteneur. Le service dépend également du service db.
Le service db utilise l'image officielle de MySQL 5.7 et définit certaines variables d'environnement pour définir le mot de passe root de MySQL, le nom de la base de données, l'utilisateur et d'autres informations. Un volume de données sera également créé dans le conteneur MySQL en tant que stockage persistant.
Notez que ce fichier définit également un volume nommé db_data. Les volumes sont utilisés pour enregistrer des données dans un conteneur afin qu'elles puissent être partagées entre différents conteneurs. Les volumes fournissent également des solutions de stockage persistantes.
Après avoir écrit le fichier docker-compose.yml, vous pouvez utiliser la commande suivante pour créer et démarrer tous les conteneurs définis dans le projet PHP :
docker-compose up -d
Cette commande exécutera tous les services définis en arrière-plan .
Vous pouvez vérifier tous les conteneurs exécutés en exécutant la commande suivante :
docker ps
Lorsque vous devez arrêter tous les services et conteneurs, vous pouvez exécuter la commande suivante :
docker-compose down
Cette commande s'arrêtera tous les conteneurs en cours d'exécution et supprimez tous les services. Si vous devez arrêter et supprimer un service spécifique, vous pouvez exécuter la commande suivante :
docker-compose stop service-name docker-compose rm service-name
où service-name est le nom du service à arrêter et à supprimer.
Cet article présente les concepts et les étapes de base de l'utilisation de Docker pour créer et gérer un environnement de développement PHP. L'utilisation de la technologie des conteneurs peut améliorer la cohérence, la portabilité et la fiabilité du processus de développement et jouer un rôle important dans le développement de projets PHP.
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!