作曲家内存限制Docker



我在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。

相关内容

  • 没有找到相关文章

最新更新