作曲家内存限制泊坞窗

Posted

技术标签:

【中文标题】作曲家内存限制泊坞窗【英文标题】:Composer memory limit docker 【发布时间】:2019-08-05 16:13:10 【问题描述】:

我对 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 它会在几分钟后启动它显示 memory limit xxxxxxxxx。我也试过 memory_limit=-1

我的笔记本电脑内存:6GB。

在另一台电脑上运行完美。

在升级内存之前它已经工作了。之前的内存是 4GB 现在是 6GB。我要运行的项目是 symfony。

【问题讨论】:

你是如何设置内存限制的?如果您在 php-fpm 容器中运行以下命令,它会返回什么? php -r "echo ini_get('memory_limit').PHP_EOL;"顺便说一句,为什么您的容器命名为 «php-fmp» 而不是 «php-fpm»? 【参考方案1】:

Composer 有自己的COMPOSER_MEMORY_LIMIT 环境变量,但是在没有设置自己的变量时默认使用php.ini 的memory_limit。 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

每次使用 docker-compose 运行 Composer 时都会考虑到这个环境变量:

docker-compose exec php-fmp composer [your composer command]

【讨论】:

【参考方案2】:

试试COMPOSER_MEMORY_LIMIT=-1 composer install,而不是php -d memory_limit=-1 composer install。 Composer 启动一个新的 php 进程,它不符合您提供的设置,甚至可能覆盖配置(我对此不是 100% 确定)。

如果这仍然不能帮助在“高级”选项卡下打开 Docker 的首选项(通过单击任务栏中的图标),您可以指定允许 Docker 消耗的内核数和内存量。我认为默认值为 2GB,您可能希望将其更改为例如4GB。

【讨论】:

以上是关于作曲家内存限制泊坞窗的主要内容,如果未能解决你的问题,请参考以下文章

sh MacOSX泊坞窗 - 输入泊坞窗实例

OSX composer 增加内存限制

sh 标记并推送泊坞窗图像到泊坞窗集线器

sh [下载并设置HDF 3.0泊坞窗容器]使用此脚本下载并设置HDF泊坞窗容器#hdf #docker #setup#hdf30

泊坞窗操作的新位置

如何优雅地分离无限睡眠泊坞窗以及为啥