Memory_limit问题运行作曲家在Symfony Gitlab CI上安装时
我正在尝试为Symfony项目添加GitLab CI,在构建阶段,我有一个脚本,该脚本需要扩展和库,最后运行COMPOSER INSTALL
:
apt-get update -yqq \
&& apt-get install git libcurl4-gnutls-dev libicu-dev libmcrypt-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libpq-dev libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev libzip-dev libonig-dev -yqq \
&& docker-php-ext-install mbstring pdo_mysql curl json intl gd xml zip bz2 opcache \
&& pecl install xdebug \
&& docker-php-ext-enable xdebug \
&& curl -sS https://getcomposer.org/installer | php \
&& php composer.phar install
问题是我获得Memory_limit错误如下所示:
!!
!! In 40bd61cdac921aa5789618d083759e080acd3c990e06953a3380ae5c5e1156fa.php line 3768:
!!
!! Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate
!! 122880 bytes)
!!
!!
!! cache:clear [--no-warmup] [--no-optional-warmers]
!!
!!
我试图将PHP Memory_limit从1.28m增加到2.56m,但行不通。我尝试了以下操作:
php -d memory_limit=256M composer.phar install
我还尝试了php -r“ ini_set('memory_limit','256m');“
,但也没有任何效果。
关于如何解决此问题的任何建议吗?
使用此命令为我解决了:
sed -i -e "s/\(memory_limit = \).*/\1256M/" $PHP_INI_DIR/php.ini
它直接从php.ini文件中编辑memory_limit值。
I'm trying to add Gitlab CI for a Symfony project and on the build stage I have a script that installs required extensions and libraries, at the end, runs composer install
:
apt-get update -yqq \
&& apt-get install git libcurl4-gnutls-dev libicu-dev libmcrypt-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libpq-dev libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev libzip-dev libonig-dev -yqq \
&& docker-php-ext-install mbstring pdo_mysql curl json intl gd xml zip bz2 opcache \
&& pecl install xdebug \
&& docker-php-ext-enable xdebug \
&& curl -sS https://getcomposer.org/installer | php \
&& php composer.phar install
the problem is I get memory_limit error as follows:
!!
!! In 40bd61cdac921aa5789618d083759e080acd3c990e06953a3380ae5c5e1156fa.php line 3768:
!!
!! Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate
!! 122880 bytes)
!!
!!
!! cache:clear [--no-warmup] [--no-optional-warmers]
!!
!!
I tried to increase PHP memory_limit from 128M to 256M but it doesn't work. I tried the following:
php -d memory_limit=256M composer.phar install
I also tried php -r "ini_set('memory_limit', '256M');"
but it does not have any effects too.
any suggestions on how to solve this problem?
SOLVED FOR ME USING THIS COMMAND:
sed -i -e "s/\(memory_limit = \).*/\1256M/" $PHP_INI_DIR/php.ini
it directly edits memory_limit value from php.ini file.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您的git回购中有composer.lock吗?安装正常状态很快,并且不需要大量内存,因为没有依赖性树的生成。如果您没有提交作曲家。锁定,您真的应该。 (这也确保您使用与本地相同的版本。由于使用的不同版本而没有奇怪的错误)
您也可以尝试:
php -d Memory_limit = -1 Composer install
Do you have the composer.lock in your git repo? install normaly is fast and doesnt need a lot of memory because there is no dependenciy tree generation. if you didnt commit your composer.lock you really should. (this also ensures you use the same versions as you did locally. no strange bugs because of different versions used)
you can also try with:
php -d memory_limit=-1 composer install
您的Docker图像怎么样?您可以尝试在构建Docker映像中修改php.ini。前任。在Docker文件中添加Memory_limit。
How about your docker image? you can try to modify your php.ini in the build docker image. ex. add memory_limit in the docker file.
或者,您可以使用Gitlab的正式建议解决方案: https://docs.gitlab.com/ee/ci/ci/examples/php.html#custom-php-configuration-in-docker-builds
用您的php.ini创建一些文件配置,例如my_php.ini和put
memory_limit = 512m
进入中。
trefer_script:
说明:它将仅复制此
my_php.ini
进入/usr/local/etc/php/conf.d/
。我自己测试了它,它起作用。有用的信息:
如果需要进行调试目的,请不要犹豫,将>例如
php -ini
添加到php.ini文件列表中,或使用php -r php -r “ echo ini_get('memory_limit');”
查看您当前拥有的确切内存限制Or you can use officially suggested solution from gitlab: https://docs.gitlab.com/ee/ci/examples/php.html#custom-php-configuration-in-docker-builds
create some file with your php.ini configuration e.g. my_php.ini and put
memory_limit = 512M
into itput following code into your .gitlab-ci.yml:
before_script:
Explanation: it will just copy this
my_php.ini
into/usr/local/etc/php/conf.d/
. I tested it myself and it works.Useful info:
If you need for debuging purposes, dont hesitate to put into
before_script
for examplephp --ini
to see list of php.ini files loaded or usephp -r "echo ini_get('memory_limit');"
to see the exact memory limit you currently have