TL;DR: 在我读到 WSL2 将用于 Windows(和 Docker)14 个月后,我尝试了 Symfony 5,但它仍然像巧克力球一样慢。
早在 2020 年第一季度,我就了解到 Symfony 和 Docker 在简单的设置环境中非常慢。我们尝试了又尝试,但没有成功:无论我们如何努力,我们都无法获得 Symfony sub 4.000ms。解决方案之一显然是将供应商文件夹移到由 Docker 和 Window 管理的绑定安装之外(可通过 explorer.exe 访问),同样的情况也适用于 var 目录(用于日志和缓存)。
现在是 2021 年第二季度,一年多后,我在 PHP 和 .NET 之间轮换,但我仍然想尝试一下。我下载了我能找到的最新版本的 Windows 版 Docker Desktop,以及 Hyper-V 和 WSL2 支持。我安装了 Microsoft 的支持驱动程序,然后就可以开始了。
一个小时后,在查找了一些有关 Docker 如何实际工作的数据后,我快速部署了 PHP 7.4、NGINX、PostgreSQL、MongoDB 和 Redis 容器/堆栈,并且通过简单的 phpinfo() 和一些随机调用,一切都可以流畅地运行上述数据库。
我安装了全新的 Symfony 5,令我惊讶的是我仍然发现问题仍然存在。甚至没有与数据库建立连接,但它仍然无法运行。很自然地,我将堆栈简化回 PHP 7.4 和 NGINX 堆栈,希望在某个地方我急切地迷失了方向。不幸的是,我猛然醒悟——它仍然很糟糕。
我的设置
# ./docker-compose.yml
version: '3'
services:
php-fpm:
build:
context: ./php-fpm
volumes:
- ../src:/var/www
networks:
- symfony
nginx:
build: …Run Code Online (Sandbox Code Playgroud)