我更新了Windows10到2004年的最新版本,安装了wsl2并更新了它,安装了对接器和ubuntu。
当我用"Hello“创建一个简单的index.php文件时,它工作得非常完美(响应:100-400‘s ),但是当我添加了Laravel项目时,它在执行请求之前加载了7秒,响应是4-7秒,尽管PHPMyAdmin运行非常顺利(响应:1-2秒)。
我的docker-compose.yml文件:
version: '3.8'
networks:
laravel:
services:
nginx:
image: nginx:stable-alpine
container_name: nginx
ports:
- "8080:80"
volumes:
- ./src:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
- mysql
- phpmyadmin
networks:
- laravel
mysql:
image: mysql:latest
container_name: mysql
restart: unless-stopped
tty: true
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: secret
SERVICE_TAGS: dev
SERVICE_NAME: mysql
networks:
- laravel
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
depends_on:
- mysql
ports:
- 8081:80
environment:
PMA_HOST: mysql
PMA_ARBITRARY: 1
php:
build:
context: .
dockerfile: Dockerfile
container_name: php
volumes:
- ./src:/var/www/html
ports:
- "9000:9000"
networks:
- laravel
composer:
image: composer:latest
container_name: composer
volumes:
- ./src:/var/www/html
working_dir: /var/www/html
depends_on:
- php
networks:
- laravel
npm:
image: node:latest
container_name: npm
volumes:
- ./src:/var/www/html
working_dir: /var/www/html
entrypoint: ['npm']
artisan:
build:
context: .
dockerfile: Dockerfile
container_name: artisan
volumes:
- ./src:/var/www/html
depends_on:
- mysql
working_dir: /var/www/html
entrypoint: ['php', '/var/www/html/artisan']
networks:
- laravel我试着解决这个问题已经有两天了,但没有找到答案。
谢谢
发布于 2020-07-23 12:48:42
看起来你正在把你的Laravel项目安装在你的容器里。如果您将这些文件从Windows环境安装到WSL 2,这可能会导致文件I/O非常差,因为WSL 2目前在访问Windows环境中的文件时遇到了很多问题。这个I/O问题存在于2020年7月,您可以在Github 这里上找到该问题的持续状态。
有三个可能的解决方案,我可以想到,这将解决这个问题目前。
禁用基于WSL 2的码头引擎,直到问题得到解决为止,
由于此问题仅在WSL 2试图访问Windows文件系统时发生,因此您可以选择禁用WSL 2对接程序集成并在Windows环境中运行容器。您可以在Desktop的UI中找到禁用它的选项:

将项目存储在WSL 2的Linux文件系统中。
同样,由于WSL 2试图访问/mnt下的Windows文件系统的挂载点时会出现此问题,因此您可以选择将项目存储到WSL 2的Linux文件系统上。
构建您自己的Dockerfiles
您可以选择创建您自己的Dockerfile,而不是挂载您的项目,您可以将所需的目录COPY到停靠者映像中。这将导致较差的构建性能,因为WSL 2仍然需要访问Windows文件系统才能生成这些停靠文件映像,但是运行时性能要好得多,因为它不必每次都从Windows环境中检索这些文件。
发布于 2021-05-28 09:14:03
只需将所有源项目移到文件夹中即可。
\\wsl$\Ubuntu-20.04\home\<User Name>\<Project Name>在Linux原住民上这样的运行速度将会非常快
在此之前

之后

发布于 2021-08-22 22:46:41
我在mysql数据库请求和响应中遇到了同样的问题,每次请求/响应大约需要8到10秒。这个问题肯定与和WindowsWSL2之间的文件安装有关。经过几天的努力解决这个问题,我发现这篇文章:
https://www.createit.com/blog/slow-docker-on-windows-wsl2-fast-and-easy-fix-to-improve-performance/
在实现post中指定的步骤之后,它完全消除了这个问题,将数据库请求/响应减少到毫秒。希望这能帮助经历同样问题的人。
https://stackoverflow.com/questions/63036490
复制相似问题