[英]Why is my php docker container so slow on Windows 11?
我正在尝试在我的 Windows 11(内部版本:22000.376)笔记本电脑上设置开发环境。 我最初在 Ubuntu 20.04 工作站上创建了环境,它运行良好。
它由以下容器组成;
所有容器都驻留在同一个“应用程序网络”中,percona 和 redis 服务器具有专用卷。 一切正常,但 PHP 容器除外。 我尝试通过 Composer 在其上安装 Sulu CMS,但在安装过程中速度很慢。 我在安装过程中发现了一些错误;
Failed to extract doctrine/annotations: (1) '/usr/bin/unzip' -qq '/var/www/html/tomtest/vendor/composer/tmp-6c0172a63ff2b134ca6392ad7ff111d1' -d '/var/www/html/tomtest/vendor/composer/77e4d756'
unzip: short read
但是安装完成并成功完成。 现在,当我尝试访问骨架管理仪表板时,加载登录屏幕大约需要 20 秒。 好像 PHP 容器在 Windows 11 上运行不正确,有人遇到过这种设置的问题吗?
更新(2021-12-28 19:30)通过一些测试,发现我目前使用的挂载似乎是问题所在。
当前 php 容器设置:
php:
build:
context: ./
target: dev
container_name: ${PROJECT_NAME}_php
volumes:
- /mnt/c/Projects/sulu/docker/services/php/php.ini:/usr/local/etc/php/php.ini
- /mnt/c/Projects/sulu/:/var/www/html
- ~/.composer:/home/netbela/.composer
environment:
- PHP_IDE_CONFIG=serverName=${PROJECT_NAME}
networks:
- app-network
env_file:
- .env
ports:
- 9000:9000
定时执行作曲家创建项目:
/var/www/html $ time composer create-project sulu/skeleton testproject -n
real 7m 40.33s
user 2m 13.54s
sys 4m 41.40s
决定创建另一个没有本地目录但具有 docker 卷的 docker 实例,并为完全相同的命令计时。
php2:
build:
context: ./
target: dev
container_name: ${PROJECT_NAME}_php2
volumes:
- php2-data:/var/www/html
environment:
- PHP_IDE_CONFIG=serverName=${PROJECT_NAME}
networks:
- app-network
env_file:
- .env
ports:
- 9001:9001
volumes:
php2-data:
name: php2-data
测试 output:
real 0m 12.83s
user 0m 10.71s
sys 0m 2.81s
结论; 它与正在挂载的本地目录有关。 现在要弄清楚如何解决此问题,以便我仍然可以使用 GIT 并在使用 docker 卷的同时从 Windows 桌面编辑我的代码。
我创建了一个指向 WSL 文件系统的 docker 卷。
docker volume create --driver local -o o=bind -o type=none -o device="\\wsl$\Ubuntu-20.04\home\user\sulu" php
然后我将此 docker 卷安装到容器上并添加了external: true
标志
php:
build:
context: ./
target: dev
container_name: ${PROJECT_NAME}_php
volumes:
- php:/var/www/html
- ~/.composer:/home/user/.composer
environment:
- PHP_IDE_CONFIG=serverName=${PROJECT_NAME}
networks:
- app-network
env_file:
- .env
ports:
- 9000:9000
volumes:
php:
name: php
external: true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.