Android 빌드에서 'You build has exceeded the memory limit of 4G on 1 container.

여러분 안녕하세요.
나는 최근까지 'Nginx'를,



라고 말했는데, 이것이 맞지 않습니다.
「엔진 에쿠스」라고 하는 것이 옳은 것 같습니다만, 이것 무리 지나치지 않습니까?
  • IIS => 아이 아이스 (알 수있다)
  • Apatch => 아파치 (알 수 있다)
  • Nginx => 엔진 에쿠스 (와칸네)

  • 아무래도 납득할 수 없네요.
    말의 유래라고도 잘 모르겠지만, 모두 이거 제대로 읽고 있습니까? !
    Nginx(누긴쿠스)라고 하는 것이 올바른 생각이 들고, 내가 회사의 에라인 사람이라면 「Nginx(엔진 에쿠스)」라고 하는 사람이 있으면 절대 즉 쿠비로 하고 있군요.

    Circle CI의 메모리 사용량은 4G까지이며, 넘으면 에러로 멈춘다.



    나는 회사의 에라인도 아무것도 아니기 때문에, 별로 아무도 곰팡이가 되지 않아서 좋았다고 생각합니다만, 그런 내가 Slack의 CircleCI 채널로 Android 빌드가 연속적으로 실패를 확인했어요.

    빌드 오류를 확인하면 아래와 같은 오류 메시지가 표시되었습니다.

    ./gradlew clean assembleDebug -PpreDexEnable=false died unexpectedly

    Building 88%90% > :app:preDexDebugAction failed: ./gradlew clean assembleDebug -PpreDexEnable=false

    그리고 circle CI의 빌드 작업 위쪽에 아래 메시지가 표시되었습니다.

    You build has exceeded the memory limit of 4G on 1 container. The results of this build are likely invalid. We have taken a snapshot of the memory usage at the time, which you can find in a build artifact named memory-usage.txt column in this file shows the amount of memory used by each process, measured in kilobytes.

    즉 1컨테이너의 메모리 사용량은 4G까지이므로, 너 넘고 있기 때문에 이끼 따위라고 하는 것 같습니다.

    (해결책) 메모리 절약 빌드를 위해, 여러가지 파라미터를 붙이면 OK!



    아래와 같이 메모리 절약으로 빌드하도록 하면 되었습니다.

    circle.yml
    deployment:
        master:
            branch: master
            commands:
                - ./gradlew assembleDebug -PpreDexEnable=false -Pcom.android.build.threadPoolSize=1 -Dorg.gradle.parallel=false -Dorg.gradle.jvmargs="-Xms512m -Xmx512m" -Dorg.gradle.daemon=false
    

    그럼 어딘가에서 만나요!

    참고



    Gradle assembleDebug and preDexDebug fail with CircleCI

    좋은 웹페이지 즐겨찾기