Aws ec2 实例中 docker 容器内的“Composer update”命令内存不足错误

Posted

技术标签:

【中文标题】Aws ec2 实例中 docker 容器内的“Composer update”命令内存不足错误【英文标题】:Out of memory error in 'Composer update' command inside docker container in Aws ec2 instance 【发布时间】:2020-08-29 08:39:53 【问题描述】:

我尝试在 Aws ec2 实例的 docker 容器内运行“composer update”命令。但是我收到了这个错误

  mmap() failed: [12] Cannot allocate memory

  mmap() failed: [12] Cannot allocate memory

  Fatal error: Out of memory (allocated 478179328) (tried to allocate 20996408 bytes) in phar:///usr/local/bin/composer/src/Composer/Util/RemoteFilesystem.php on line 462

我尝试在 php 配置文件中使用“memory_limit = -1”或“memory_limit = 2G”。 我还尝试在我的 docker 容器中运行此命令“php -d memory_limit=-1 /usr/local/bin/composer update”。 但它仍然显示相同的错误

【问题讨论】:

这能回答你的问题吗? PHP Composer update "cannot allocate memory" error (using Laravel 4) 【参考方案1】:

在您的本地环境中运行composer update,然后将composer.jsoncomposer.lock 提交到您的代码存储库,拉取您的ec2 实例中的更改并运行composer install

通常,资源不足的服务器没有足够的 RAM 来运行 composer update。您最好在本地环境中执行此操作,并且仅在您的服务器上使用 composer install

【讨论】:

我首先在本地环境中运行“composer update”并将代码提交到 github,然后将项目克隆到 Aws ec2 容器中。然后运行“docker-compose up -d”运行容器,instde容器运行“composer update”命令 不要在容器内运行composer update。那是你的问题,没有真正的意义。改为运行composer install

以上是关于Aws ec2 实例中 docker 容器内的“Composer update”命令内存不足错误的主要内容,如果未能解决你的问题,请参考以下文章

将夹具上传到在 AWS EC2 实例的 docker 容器中运行的 django

从 Docker 容器中获取 AWS 实例元数据?

具有 Auto Scaling 与弹性容器服务 (ECS) 的 AWS EC2 - Docker

如何在 AWS 实例上显示维护页面,

如何将文件添加到 EC2 实例下的容器中?

显示docker容器登录aws ECS集群