Maison  >  Article  >  développement back-end  >  Comment utiliser Docker pour déployer des projets en développement PHP

Comment utiliser Docker pour déployer des projets en développement PHP

WBOY
WBOYoriginal
2023-06-27 14:29:343550parcourir

Utiliser Docker pour déployer des projets en développement PHP est devenu une tendance de plus en plus populaire. Docker est une technologie de conteneurisation populaire qui peut regrouper des applications dans des conteneurs, fournissant ainsi aux développeurs un environnement de développement standardisé capable de déployer de manière transparente des applications dans différents systèmes d'exploitation et environnements, et de créer, déployer et mettre à niveau des applications rapidement.

Apprenons-en davantage sur la façon d'utiliser Docker pour déployer des projets en développement PHP.

Étape 1 : Installer et configurer Docker

Tout d'abord, assurez-vous que Docker est installé sur votre système local. La méthode d'installation de Docker peut être légèrement différente selon les systèmes d'exploitation. Une fois l'installation terminée, utilisez la commande docker version dans le terminal pour vérifier si l'installation a réussi.

Le cœur de la configuration de Docker est de créer un Dockerfile, qui est un fichier texte contenant toutes les instructions pour créer une image Docker. Dans le Dockerfile, nous devons définir l'environnement requis pour le développement PHP.

Étape 2 : Écrivez le Dockerfile

Créez un Dockerfile et placez-le dans le répertoire racine du projet.

Dans le Dockerfile, nous devons inclure le contenu suivant :

# 基础镜像,Golang alpine 3.7版本 
FROM alpine:3.7 

# 添加所有php常用库
RUN apk update 
&& apk add --no-cache 
php7-bcmath 
php7-ctype 
php7-curl php7-dom php7-fileinfo php7-ftp php7-gd php7-iconv php7-intl php7-json php7-ldap php7-mbstring php7-mysqli php7-mysqlnd php7-opcache php7-openssl php7-pcntl  
php7-pdo_mysql php7-pdo_sqlite  php7-phar  php7-posix  php7-session  php7-simplexml  php7-soap  php7-sockets  php7-sqlite3  php7-tokenizer  php7-xml  php7-xmlreader  php7-xmlwriter php7-zip php7-zlib 

# 修改时区
RUN apk add --no-cache tzdata 
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

# 在容器中创建目录并设置权限
WORKDIR /var/www/ 
RUN mkdir -p var/www/html 
&& chown -R nginx:nginx /var/www/html 

# 开放80端口
EXPOSE 80 

# 开始运行PHP-FPM
CMD ["php-fpm7", "-F"] 

Ce qui précède est le contenu d'un simple fichier Dockerfile, qui comprend principalement les trois aspects suivants :

  1. Image de base : Nous avons choisi la version alpine 3.7, un Une petite distribution contenant uniquement les composants les plus nécessaires. Cela réduit la taille de l’image et accélère le démarrage du conteneur.
  2. Ajouter les extensions requises par PHP : Comme indiqué ci-dessus, nous avons ajouté de nombreuses extensions courantes pour PHP.
  3. Définissez le mode d'exécution du conteneur : nous utilisons le processus FPM de PHP comme processus par défaut du conteneur, afin que PHP-FPM s'exécute automatiquement au démarrage du conteneur.

Étape 3 : Générer une image Docker

Utilisez la commande suivante pour créer une image PHP-FPM :

docker build . -t php-fpm7:latest 

Cette commande construira automatiquement l'image à partir du répertoire actuel et définira l'étiquette sur php-fpm7:latest.

Étape 4 : Écrivez le fichier docker-compose.yml

Ensuite, nous devons préparer le fichier docker-compose.yml, qui définira le fonctionnement de notre application.

version: '3.1' 

services: 

# 定义Nginx服务 
nginx: 
image: nginx:1.13-alpine 
ports: 
- '8000:80' 
volumes: 
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro 
- ./nginx/conf.d:/etc/nginx/conf.d:ro 
- ./code:/var/www/html:ro 
depends_on: 
- php 

# PHP-FPM服务 
php: 
image: php-fpm7:latest 
volumes: 
- ./code:/var/www/html:rw 
- ./php/custom.ini:/usr/local/etc/php/conf.d/custom.ini:ro 

# MySQL服务 
mysql: 
image: mysql:5.7 
ports: 
- '3306:3306' 
env_file: 
- ./mysql/.env 
volumes: 
- ./mysql/data:/var/lib/mysql 
- ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro

Comme indiqué ci-dessus, nous avons défini trois services : Nginx, PHP et MySQL Le port, la configuration, les dépendances, les volumes montés et d'autres paramètres peuvent être modifiés en fonction de vos besoins réels.

Étape 5 : Démarrez l'application

Enfin, nous démarrons l'application via la commande suivante :

docker-compose up 

Cette commande lira le fichier docker-compose.yml et démarrera tous les services. Une fois l'exécution réussie, vous pouvez visiter http://localhost:8000 via le navigateur pour vérifier si le déploiement a réussi.

Résumé :

Ce qui précède explique comment utiliser Docker pour déployer des projets en développement PHP. Par rapport aux méthodes de déploiement traditionnelles, le déploiement Docker peut nous aider à réduire les coûts de développement et de déploiement, à améliorer l'évolutivité et la stabilité des applications et à faire gagner du temps aux développeurs. J'espère que cet article pourra aider tout le monde à mieux apprendre et appliquer la technologie Docker.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn