docker의 php 컨테이너에 composer install하면 메모리 부족으로 떨어진 이야기

1977 단어 ComposerPHP도커

소개



docker에서 laravel을 개발하고 Composer에서 필요한 라이브러리를 설치하려고하면 다음 오류가 발생합니다.

↓ 오류 메시지
Using version ^4.3 for laravel/socialite
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer.phar/src/Composer/DependencyResolver/Solver.php on line 223


원인 조사



컨테이너에 들어가서 다음 명령을 실행

$ php -r 'phpinfo();' | grep memory_limit

$ memory_limit => 128M => 128M

확실히 기본 php 메모리가 적습니다,,,

그건 그렇고, -r은 명령 줄에서 PHP 프로그램을 실행하는 옵션입니다!

↓참조원 php 명령 옵션
htps //w w. php. 네 t/마누아 l/쟈/후아트레 s. 괜찮아요. 오 치온 s. php

해결 방법


  • php 컨테이너의 docker 파일에 다음을 추가

  • php/Dockerfile
     COPY php.ini /usr/local/etc/php/ 
    
  • php.ini를 docker 파일의 디렉토리에 생성

  • php/php.ini
      memory_limit = -1
    

     -1은 상한 없음이라는 의미
  • 컨테이너를 다시 시작하는 동안 들어가 메모리를 확인합니다
  •   $ php -r 'phpinfo();' | grep memory_limit           
      $ memory_limit => -1 => -1
    

     php.ini 설정으로 전환하고 있습니다 ~!
     나이스네요~~~ 라고 전라의 감독으로부터 들려올 것 같습니다!

    결과



    다시 composer install하면,,,
    Package manifest generated successfully
    

    안전하게 설치할 수있었습니다! 마블러스!

    좋은 웹페이지 즐겨찾기