我在Docker上的 Composer install 有问题。这是我的 docker-compose 文件:
version: '3'
services:
webserver:
image: nginx:latest
ports:
- 80:80
- 433:433
volumes:
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
- ./:/var/www/html/
links:
- php-fmp
- db
networks:
- app-network
php-fmp:
build: docker/php-fmp
volumes:
- ./:/var/www/html/
ports:
- 9000:9000
links:
- db
networks:
- app-network
db:
image: mysql
ports:
- 3306:3306
volumes:
- /var/lib/mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
- MYSQL_DATABASE=goexpress
- MYSQL_USER=root
- MYSQL_PASSWORD=root
- MYSQL_ROOT_PASSWORD=docker
networks:
- app-network
networks:
app-network:
driver: bridge
我尝试执行 Docker-Compose Run PHP-FMP Composer install 它在几分钟后开始显示内存限制xxxxxxxxxxxx 。我也尝试过 MEMORY_LIMIT = -1 。
我的笔记本电脑内存:6GB。
在另一台PC中,它的工作原理。
在升级内存之前,它已经有效。以前的内存是4GB现在是6GB。我想运行的项目是Symfony。
作曲家具有其自己的COMPOSER_MEMORY_LIMIT
环境变量,但是当未设置其自己的变量时,默认使用Php.ini的memory_limit
。https://getcomposer.org/doc/03-cli.md#composer-memory-limit
使用Docker组成,您需要将COMPOSER_MEMORY_LIMIT
作为环境变量传递给安装作曲家的容器。您的docker-compose.yml文件看起来像这样:
services:
php-fmp: //the name of your container (as per your question)
environment:
- COMPOSER_MEMORY_LIMIT=-1 //-1 means unlimited
每次您使用Docker-Compose运行作曲家时,都会考虑此环境变量:
docker-compose exec php-fmp composer [your composer command]
而不是php -d memory_limit=-1 composer install
尝试COMPOSER_MEMORY_LIMIT=-1 composer install
。作曲家启动了一个新的PHP过程,该过程不符合您提供的设置,甚至可能覆盖配置(我对此不确定)。
如果仍然没有帮助打开Docker的首选项(通过单击"任务栏中的图标")在"高级"选项卡下,您可以指定允许允许多少核心以及允许多少内存码头。我认为默认值为2GB,您可能希望将其更改为例如4GB。