Maison  >  Article  >  Opération et maintenance  >  Déployer Symfony avec Docker : commencez à développer rapidement

Déployer Symfony avec Docker : commencez à développer rapidement

王林
王林original
2023-10-20 12:19:531373parcourir

Déployer Symfony avec Docker : commencez à développer rapidement

Déployer Symfony avec Docker : commencez à développer rapidement

Introduction :
Avec le développement rapide de la technologie de cloud computing et de conteneurisation, Docker est devenu l'un des outils préférés des développeurs pour déployer et gérer des applications. Symfony, en tant que framework PHP populaire, peut également être déployé via Docker, ce qui simplifie grandement le processus de développement et de déploiement. Cet article explique comment utiliser Docker pour déployer des applications Symfony et fournit des exemples de code spécifiques.

Étape 1 : Installer Docker et Docker Compose
Tout d'abord, nous devons installer Docker et Docker Compose sur notre machine locale. Les étapes d'installation de Docker peuvent être trouvées sur le site officiel et l'installation est effectuée en conséquence en fonction du système d'exploitation. Docker Compose peut être installé via la commande pip, par exemple en exécutant pip install docker-compose. pip install docker-compose

步骤2:创建Symfony应用程序
在安装了Docker和Docker Compose之后,我们可以创建一个新的Symfony应用程序。使用以下命令来创建一个新的Symfony项目:

docker run --rm -v $(pwd):/app composer create-project symfony/website-skeleton my-project

这个命令将在当前目录下创建一个名为my-project的Symfony应用程序。

步骤3:编写Docker Compose文件
接下来,我们需要编写一个Docker Compose文件来定义我们的应用程序的服务和依赖关系。在项目的根目录下创建一个名为docker-compose.yml的文件,并添加以下内容:

version: '3'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 8000:8000
    volumes:
      - .:/app
    working_dir: /app
    depends_on:
      - mysql

  mysql:
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=my_database

这个Docker Compose文件定义了两个服务:一个是Symfony应用程序,另一个是MySQL数据库。Symfony服务使用了自定义的Dockerfile来构建镜像,并且将8000端口映射到主机的8000端口上。MySQL服务则使用官方的MySQL 5.7镜像,并设置了根密码和数据库名。

步骤4:编写Dockerfile
为了构建Symfony应用程序的Docker镜像,我们需要编写一个Dockerfile。在项目的根目录下创建一个名为Dockerfile的文件,并添加以下内容:

FROM php:7.4-apache

RUN apt-get update && apt-get install -y 
    git 
    unzip 
    libonig-dev 
    libxml2-dev

RUN docker-php-ext-install pdo_mysql mbstring xml

COPY . /var/www/html

WORKDIR /var/www/html

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

RUN composer install --no-interaction --optimize-autoloader

RUN chown -R www-data:www-data /var/www/html

这个Dockerfile使用了官方的PHP 7.4镜像作为基础镜像,并安装了一些必要的依赖。然后,将Symfony应用程序的代码复制到容器的指定目录中,并使用Composer安装应用程序的依赖。最后,我们将Apache服务器的文档根目录设置为Symfony应用程序的目录,并将所有文件的权限修改为对Apache可写。

步骤5:构建和运行容器
一切准备就绪后,我们可以使用Docker Compose来构建和运行容器。在项目的根目录下运行以下命令:

docker-compose up -d

这个命令将会自动构建Symfony应用程序的Docker镜像,并创建并运行两个容器:一个是Symfony应用程序容器,另一个是MySQL数据库容器。应用程序现在可以通过localhost:8000

Étape 2 : Créer une application Symfony

Après avoir installé Docker et Docker Compose, nous pouvons créer une nouvelle application Symfony. Utilisez la commande suivante pour créer un nouveau projet Symfony :
rrreee

Cette commande créera une application Symfony nommée mon-projet dans le répertoire courant. 🎜🎜Étape 3 : Écrire un fichier Docker Compose🎜Ensuite, nous devons écrire un fichier Docker Compose pour définir les services et les dépendances de notre application. Créez un fichier appelé docker-compose.yml dans le répertoire racine du projet et ajoutez le contenu suivant : 🎜rrreee🎜Ce fichier Docker Compose définit deux services : l'un est l'application Symfony et l'autre est une base de données MySQL. Le service Symfony utilise un Dockerfile personnalisé pour créer l'image et mappe le port 8000 au port 8000 de l'hôte. Le service MySQL utilise l'image officielle MySQL 5.7 et définit le mot de passe root et le nom de la base de données. 🎜🎜Étape 4 : Écrire un fichier Docker🎜Afin de créer l'image Docker de l'application Symfony, nous devons écrire un fichier Docker. Créez un fichier nommé Dockerfile dans le répertoire racine du projet et ajoutez le contenu suivant : 🎜rrreee🎜Ce Dockerfile utilise l'image officielle PHP 7.4 comme image de base et installe certaines dépendances nécessaires. Ensuite, copiez le code de l'application Symfony dans le répertoire spécifié du conteneur et utilisez Composer pour installer les dépendances de l'application. Enfin, nous définissons la racine du document du serveur Apache sur le répertoire de l'application Symfony et modifions les autorisations de tous les fichiers pour qu'ils soient accessibles en écriture par Apache. 🎜🎜Étape 5 : Créer et exécuter le conteneur🎜Une fois que tout est prêt, nous pouvons utiliser Docker Compose pour créer et exécuter le conteneur. Exécutez la commande suivante dans le répertoire racine du projet : 🎜rrreee🎜Cette commande construira automatiquement l'image Docker de l'application Symfony et créera et exécutera deux conteneurs : l'un est le conteneur de l'application Symfony et l'autre est le conteneur de la base de données MySQL. L'application est désormais accessible via localhost:8000. 🎜🎜Conclusion : 🎜En utilisant Docker pour déployer des applications Symfony, nous avons pu démarrer rapidement le processus de développement et de déploiement et éviter les dépendances à l'environnement local. L'utilisation de Docker Compose pour définir les services et les dépendances peut rendre l'ensemble du processus de développement et de déploiement plus rationalisé et plus fiable. Nous espérons que les exemples de code fournis dans cet article pourront aider les lecteurs à mieux comprendre et utiliser Docker pour déployer des applications Symfony. 🎜

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