【问题标题】:Running out of memory when executing composer inside a docker container在 docker 容器中执行 composer 时内存不足
【发布时间】:2020-04-03 17:59:02
【问题描述】:

我在 docker 容器上运行 composer,我正在尝试安装 predis,所以我运行命令

docker-compose run --rm composer 需要 predis/predis

但我得到了这个错误

谁能解释一下如何解决?

这是我的 dockerfile

FROM php:7.2-fpm-alpine

RUN docker-php-ext-install pdo pdo_mysql

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN composer --version

这就是我的 docker-compose

   services:
      nginx:
        image: nginx:stable-alpine
        container_name: nginx
        ports: 
          - "8088:80"
        volumes: 
          - ./src:/var/www/html 
          - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
        depends_on: 
        - mysql
        - php
        networks: 
        - laravel

      mysql:
        image: mysql:5.7.22
        container_name: mysql
        restart: unless-stopped
        tty: true
        ports: 
          - "4306:3306"
        environment: 
          MYSQL_DATABASE: homestead
          MYSQL_USER: homestead
          MYSQL_PASSWORD: secret
          MYSQL_ROOT_PASSWORD: secret
          SERVICE_TAGS: dev
          SERVICE_NAME: mysql
        networks: 
        - laravel

      php:
        build: 
          context: .
          dockerfile: Dockerfile
        container_name: php
        volumes: 
          - ./src:/var/www/html
        ports:
          - "9000:9000"
        networks: 
          - laravel

      redis:
            image: redis:5.0.0-alpine
            restart: always
            container_name: redis
            ports:
                - "6379:6379"
            networks:
              - laravel

【问题讨论】:

  • 通常像docker-compose run 这样的命令会将文本写入控制台,而不是图像。你能用命令的实际输出替换那个图像吗?您是否还可以包含一个带有足够源代码的minimal reproducible example(可能至少是相关的docker-compose.yml 块和图像的Dockerfile)来演示这个问题?
  • @David 编辑了它

标签: docker docker-compose composer-php


【解决方案1】:

在您的 docker-compose 文件中,将带有 COMPOSER_MEMORY_LIMIT: -1 的环境条目添加到您的 php 服务

所以你的 php 服务看起来像 -

  php:
    build: 
      context: .
      dockerfile: Dockerfile
    container_name: php
    volumes: 
      - ./src:/var/www/html
    environment:
      COMPOSER_MEMORY_LIMIT: -1
    ports:
      - "9000:9000"
    networks: 
      - laravel

【讨论】:

    猜你喜欢
    • 2020-08-29
    • 1970-01-01
    • 2022-11-17
    • 2019-11-07
    • 2016-12-13
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多