Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Stellen Sie Symfony mit Docker bereit: Beginnen Sie schnell mit der Entwicklung

Stellen Sie Symfony mit Docker bereit: Beginnen Sie schnell mit der Entwicklung

王林
王林Original
2023-10-20 12:19:531331Durchsuche

Stellen Sie Symfony mit Docker bereit: Beginnen Sie schnell mit der Entwicklung

Bereitstellen von Symfony mit Docker: Beginnen Sie schnell mit der Entwicklung

Einführung:
Mit der rasanten Entwicklung der Cloud-Computing- und Containerisierungstechnologie ist Docker zu einem der bevorzugten Tools für Entwickler zum Bereitstellen und Verwalten von Anwendungen geworden. Symfony als beliebtes PHP-Framework kann auch über Docker bereitgestellt werden, was den Entwicklungs- und Bereitstellungsprozess erheblich vereinfacht. In diesem Artikel wird erläutert, wie Sie mit Docker Symfony-Anwendungen bereitstellen, und es werden spezifische Codebeispiele bereitgestellt.

Schritt 1: Docker und Docker Compose installieren
Zuerst müssen wir Docker und Docker Compose auf unserem lokalen Computer installieren. Die Installationsschritte von Docker finden Sie auf der offiziellen Website. Die Installation erfolgt entsprechend dem Betriebssystem. Docker Compose kann über den Befehl pip installiert werden, beispielsweise durch Ausführen von 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

Schritt 2: Symfony-Anwendung erstellen

Nach der Installation von Docker und Docker Compose können wir eine neue Symfony-Anwendung erstellen. Verwenden Sie den folgenden Befehl, um ein neues Symfony-Projekt zu erstellen:
rrreee

Dieser Befehl erstellt eine Symfony-Anwendung mit dem Namen my-project im aktuellen Verzeichnis. 🎜🎜Schritt 3: Schreiben Sie eine Docker Compose-Datei🎜Als nächstes müssen wir eine Docker Compose-Datei schreiben, um die Dienste und Abhängigkeiten unserer Anwendung zu definieren. Erstellen Sie eine Datei mit dem Namen docker-compose.yml im Stammverzeichnis des Projekts und fügen Sie den folgenden Inhalt hinzu: 🎜rrreee🎜Diese Docker Compose-Datei definiert zwei Dienste: einer ist die Symfony-Anwendung und der andere ist eine MySQL-Datenbank. Der Symfony-Dienst verwendet eine benutzerdefinierte Docker-Datei, um das Image zu erstellen und ordnet Port 8000 dem Port 8000 des Hosts zu. Der MySQL-Dienst verwendet das offizielle MySQL 5.7-Image und legt das Root-Passwort und den Datenbanknamen fest. 🎜🎜Schritt 4: Schreiben Sie eine Docker-Datei🎜Um das Docker-Image der Symfony-Anwendung zu erstellen, müssen wir eine Docker-Datei schreiben. Erstellen Sie eine Datei mit dem Namen Dockerfile im Stammverzeichnis des Projekts und fügen Sie den folgenden Inhalt hinzu: 🎜rrreee🎜Dieses Dockerfile verwendet das offizielle PHP 7.4-Image als Basisimage und installiert einige notwendige Abhängigkeiten. Kopieren Sie dann den Code der Symfony-Anwendung in das angegebene Verzeichnis des Containers und verwenden Sie Composer, um die Abhängigkeiten der Anwendung zu installieren. Schließlich legen wir das Dokumentenstammverzeichnis des Apache-Servers auf das Verzeichnis der Symfony-Anwendung fest und ändern die Berechtigungen aller Dateien so, dass Apache sie schreiben kann. 🎜🎜Schritt 5: Container erstellen und ausführen🎜Sobald alles fertig ist, können wir Docker Compose verwenden, um den Container zu erstellen und auszuführen. Führen Sie den folgenden Befehl im Stammverzeichnis des Projekts aus: 🎜rrreee🎜Dieser Befehl erstellt automatisch das Docker-Image der Symfony-Anwendung und erstellt und führt zwei Container aus: einer ist der Symfony-Anwendungscontainer und der andere ist der MySQL-Datenbankcontainer. Die Anwendung ist nun über localhost:8000 erreichbar. 🎜🎜Fazit: 🎜Durch die Verwendung von Docker zur Bereitstellung von Symfony-Anwendungen konnten wir den Entwicklungs- und Bereitstellungsprozess schnell starten und Abhängigkeiten von der lokalen Umgebung vermeiden. Die Verwendung von Docker Compose zum Definieren von Diensten und Abhängigkeiten kann den gesamten Entwicklungs- und Bereitstellungsprozess rationalisieren und zuverlässiger machen. Wir hoffen, dass die in diesem Artikel bereitgestellten Codebeispiele den Lesern helfen können, Docker besser zu verstehen und für die Bereitstellung von Symfony-Anwendungen zu verwenden. 🎜

Das obige ist der detaillierte Inhalt vonStellen Sie Symfony mit Docker bereit: Beginnen Sie schnell mit der Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn