Laravel Sail Docker环境下PHPMyAdmin内存不足错误排查求助
Laravel Sail Docker环境下PHPMyAdmin内存不足问题求助
错误信息
访问http://localhost:8888/时:
Fatal error: Out of memory (allocated 2097152 bytes) (tried to allocate 81920 bytes) in /var/www/html/vendor/composer/autoload_static.php on line 421
刷新后:
PHP Fatal error: Out of memory (allocated 2097152 bytes) (tried to allocate 65536 bytes) in /var/www/html/vendor/composer/autoload_real.php on line 33
已尝试的解决方法
- 重启Sail:执行
sail restart - 无缓存重建镜像:执行
sail build --no-cache和sail up -d - 在docker-compose.yml的phpmyadmin服务中添加环境变量
PHP_MEMORY_LIMIT: 1G,重启后无效 - 自定义PHP配置文件:
- 创建
./phpmyadmin/phpmyadmin-misc.ini和./phpmyadmin/sessions目录 - 在docker-compose.yml的phpmyadmin服务中挂载卷:
volumes: - ./phpmyadmin/sessions:/sessions - ./phpmyadmin/phpmyadmin-misc.ini:/usr/local/etc/php/conf.d/phpmyadmin-misc.ini - phpmyadmin-misc.ini内容:
allow_url_fopen = Off max_execution_time = 600 memory_limit = 64M post_max_size = 64M upload_max_filesize = 64M - 重启后无效
- 创建
- 设置Docker资源限制:在phpmyadmin服务中添加deploy配置:
phpmyadmin: image: phpmyadmin/phpmyadmin:5.2.1 deploy: resources: limits: cpus: '0.50' memory: 50M reservations: cpus: '0.25' memory: 20M- 重启后无效
- 直接修改容器内php.ini:
- 进入容器:
sail exec phpmyadmin bash - 创建phpinfo文件:
echo "<?php phpinfo(); ?>" > info.php - 访问
http://localhost:8888/info.php确认php.ini路径为/usr/local/etc/php - 复制生产环境配置:
cp php.ini-production php.ini - 安装vim并修改
memory_limit=2048M - 退出容器并执行
sail restart
- 重启后无效
- 进入容器:
环境信息
- Mac M2 2022,内存16G,系统Sonoma 14.0
- Docker版本20.10.8,build 3967b7d
- Docker资源配置:CPU 4核,内存3.00GB,Swap 1GB,磁盘镜像已用27.5GB(总59.6GB)
- Laravel Sail版本:
"laravel/sail": "^1.22" - PHPMyAdmin镜像:
phpmyadmin/phpmyadmin
完整docker-compose.yml配置
version: '3' services: laravel.test: build: context: ./vendor/laravel/sail/runtimes/8.2 dockerfile: Dockerfile args: WWWGROUP: '${WWWGROUP}' image: sail-8.2/app extra_hosts: - 'host.docker.internal:host-gateway' ports: - '${APP_PORT:-80}:80' - '${VITE_PORT:-5173}:${VITE_PORT:-5173}' environment: WWWUSER: '${WWWUSER}' LARAVEL_SAIL: 1 XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}' XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}' IGNITION_LOCAL_SITES_PATH: '${PWD}' volumes: - '.:/var/www/html' networks: - sail depends_on: - mysql - mailpit mysql: image: 'mysql/mysql-server:8.0' ports: - '${FORWARD_DB_PORT:-3306}:3306' environment: MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' MYSQL_ROOT_HOST: '%' MYSQL_DATABASE: '${DB_DATABASE}' MYSQL_USER: '${DB_USERNAME}' MYSQL_PASSWORD: '${DB_PASSWORD}' MYSQL_ALLOW_EMPTY_PASSWORD: 1 volumes: - 'sail-mysql:/var/lib/mysql' - './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh' networks: - sail healthcheck: test: - CMD - mysqladmin - ping - '-p${DB_PASSWORD}' retries: 3 timeout: 5s mailpit: image: 'axllent/mailpit:latest' ports: - '${FORWARD_MAILPIT_PORT:-1025}:1025' - '${FORWARD_MAILPIT_DASHBOARD_PORT:-8025}:8025' networks: - sail phpmyadmin: image: phpmyadmin/phpmyadmin links: - mysql:mysql ports: - 8888:80 environment: MYSQL_USERNAME: '${DB_USERNAME}' MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' PMA_HOST: mysql networks: - sail networks: sail: driver: bridge volumes: sail-mysql: driver: local
希望能得到针对该错误的配置调整建议或其他排查方向,感谢帮助!
内容的提问来源于stack exchange,提问作者ryo-kozin
相关产品推荐
相关产品推荐

