Gunakan Symfony dengan Docker: Mulakan pembangunan dengan cepat

王林
Lepaskan: 2023-10-20 12:19:53
asal
1359 orang telah melayarinya

Gunakan Symfony dengan Docker: Mulakan pembangunan dengan cepat

Sebarkan Symfony menggunakan Docker: Mula membangun dengan pantas

Pengenalan:
Dengan perkembangan pesat teknologi pengkomputeran awan dan kontena telah menjadi salah satu alat pilihan untuk pembangun untuk menggunakan dan mengurus aplikasi. Symfony, sebagai rangka kerja PHP yang popular, juga boleh digunakan melalui Docker, yang sangat memudahkan proses pembangunan dan penggunaan. Artikel ini akan memperkenalkan cara menggunakan Docker untuk menggunakan aplikasi Symfony dan memberikan contoh kod khusus.

Langkah 1: Pasang Docker dan Docker Compose
Pertama, kita perlu memasang Docker dan Docker Compose pada mesin tempatan. Langkah-langkah pemasangan Docker boleh didapati di laman web rasmi dan harus dipasang dengan sewajarnya mengikut sistem pengendalian. Docker Compose boleh dipasang melalui arahan pip, seperti menjalankan 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
Salin selepas log masuk

这个命令将在当前目录下创建一个名为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
Salin selepas log masuk

这个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
Salin selepas log masuk

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

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

docker-compose up -d
Salin selepas log masuk

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

Langkah 2: Cipta aplikasi Symfony

Selepas memasang Docker dan Docker Compose, kami boleh mencipta aplikasi Symfony baharu. Gunakan arahan berikut untuk mencipta projek Symfony baharu:
rrreee

Arahan ini akan mencipta aplikasi Symfony bernama my-project dalam direktori semasa. #🎜🎜##🎜🎜#Langkah 3: Tulis fail Docker Compose#🎜🎜#Seterusnya, kami perlu menulis fail Docker Compose untuk menentukan perkhidmatan dan kebergantungan aplikasi kami. Cipta fail bernama docker-compose.yml dalam direktori akar projek dan tambah kandungan berikut: #🎜🎜#rrreee#🎜🎜#Fail Docker Compose ini mentakrifkan dua perkhidmatan: satu ialah Symfony aplikasi dan satu lagi ialah pangkalan data MySQL. Perkhidmatan Symfony menggunakan Dockerfile tersuai untuk membina imej dan memetakan port 8000 ke port 8000 hos. Perkhidmatan MySQL menggunakan imej rasmi MySQL 5.7, dan menetapkan kata laluan akar dan nama pangkalan data. #🎜🎜##🎜🎜#Langkah 4: Tulis Fail Docker#🎜🎜#Untuk membina imej Docker bagi aplikasi Symfony, kita perlu menulis Fail Docker. Buat fail bernama Dockerfile dalam direktori akar projek dan tambah kandungan berikut: #🎜🎜#rrreee#🎜🎜#Dockerfile ini menggunakan imej PHP 7.4 rasmi sebagai imej asas dan memasangnya beberapa tanggungan yang diperlukan. Kemudian, salin kod aplikasi Symfony ke dalam direktori bekas yang ditentukan dan gunakan Composer untuk memasang kebergantungan aplikasi. Akhir sekali, kami menetapkan akar dokumen pelayan Apache kepada direktori aplikasi Symfony dan mengubah suai kebenaran semua fail untuk boleh ditulis oleh Apache. #🎜🎜##🎜🎜#Langkah 5: Bina dan jalankan bekas#🎜🎜#Setelah semuanya siap, kita boleh menggunakan Docker Compose untuk membina dan menjalankan kontena. Jalankan arahan berikut dalam direktori akar projek: #🎜🎜#rrreee#🎜🎜#Arahan ini secara automatik akan membina imej Docker bagi aplikasi Symfony dan mencipta serta menjalankan dua bekas: satu bekas aplikasi Symfony dan satu lagi ialah bekas pangkalan data MySQL. Aplikasi kini boleh diakses melalui localhost:8000. #🎜🎜##🎜🎜#Kesimpulan: #🎜🎜# Dengan menggunakan Docker untuk menggunakan aplikasi Symfony, kami dapat memulakan proses pembangunan dan penggunaan dengan cepat serta mengelakkan pergantungan pada persekitaran setempat. Menggunakan Docker Compose untuk mentakrifkan perkhidmatan dan kebergantungan boleh menjadikan keseluruhan proses pembangunan dan penggunaan lebih lancar dan boleh dipercayai. Kami berharap contoh kod yang disediakan dalam artikel ini dapat membantu pembaca lebih memahami dan menggunakan Docker untuk menggunakan aplikasi Symfony. #🎜🎜#

Atas ialah kandungan terperinci Gunakan Symfony dengan Docker: Mulakan pembangunan dengan cepat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!