Sha*_*ode 9 php symfony composer-php docker docker-compose
我在 docker 上安装 composer有问题。这是我的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
Run Code Online (Sandbox Code Playgroud)
我尝试执行docker-compose run php-fmp composer install它在几分钟后启动它显示内存限制 xxxxxxxxx。我也试过memory_limit=-1。
我的笔记本内存:6GB。
在另一台电脑上它工作完美。
在升级内存之前它已经工作了。内存以前是4GB,现在是6GB。我要运行的项目是 symfony。
mae*_*lga 10
Composer 有自己的COMPOSER_MEMORY_LIMIT
环境变量,但memory_limit
在没有设置自己的变量时默认使用 php.ini 的。https://getcomposer.org/doc/03-cli.md#composer-memory-limit
使用 Docker Compose,您需要将COMPOSER_MEMORY_LIMIT
环境变量作为环境变量传递给安装 Composer 的容器。您的 docker-compose.yml 文件将如下所示:
services:
php-fmp: //the name of your container (as per your question)
environment:
- COMPOSER_MEMORY_LIMIT=-1 //-1 means unlimited
Run Code Online (Sandbox Code Playgroud)
每次使用 docker-compose 运行 Composer 时,都会考虑此环境变量:
docker-compose exec php-fmp composer [your composer command]
Run Code Online (Sandbox Code Playgroud)
而不是php -d memory_limit=-1 composer install
尝试COMPOSER_MEMORY_LIMIT=-1 composer install
。Composer 启动一个新的 php 进程,它不符合您提供的设置,它甚至可能覆盖配置(我不是 100% 确定)。
如果这仍然没有帮助打开 Docker 的首选项(通过单击任务栏中的图标)在“高级”选项卡下,您可以指定允许 docker 消耗多少内核和多少内存。我认为默认值为 2GB,您可能希望将其更改为 4GB。
归档时间: |
|
查看次数: |
8544 次 |
最近记录: |