Rails 컨테이너의 docker build 가속화

1567 단어 BuildKit도커Rails
BuildKit을 활성화하고 docker build하면 얼마나 빨라지는지 확인했습니다.

BuildKit



세부 사항까지 이해하지 못했지만, 정리하면,
  • 종속성이없는 명령을 병렬로 실행할 수 있음
  • 컴파일러 및 패키지 관리자 캐시 디렉토리를 유지할 수 있습니다

  • 이러한 메커니즘은 빌드를 가속화하는 것 같습니다.

    이용방법



    BuildKit은 docker v18.06에서 사용할 수 있습니다.
    환경 변수DOCKER_BUILDKIT=1를 설정하기만 하면 됩니다.

    BuildKit 사용 안 함



    BuildKit을 비활성화합니다.
    $ export DOCKER_BUILDKIT=0
    

    중간 레이어 삭제 및 캐시 미사용 옵션으로 빌드.
    $ docker build . --rm --no-cache -t rails_app -f dockerfiles/rails/Dockerfile 
    

    빌드 시간은 4m27s이었습니다.

    BuildKit 사용 시



    다음을 활성화하고 빌드해 보겠습니다.
    $ export DOCKER_BUILDKIT=1
    
    $ docker build . --rm --no-cache -t rails_app -f dockerfiles/rails/Dockerfile 
    

    빌드 시간은 2m54s이었습니다.

    약 35%의 빌드 시간 삭감이 되었습니다! (물론 환경이나 이미지의 내용에도 의지합니다만)

    빌드 시간 단축 이외에 기뻤다.



    빌드 중 화면 출력이 보기 쉬워졌습니다.
    기존의 빌드에서는 방대한 길이가 되는데 내용도 알기 어려웠습니다.

    BuildKit에서는 상태가 레이어별로 그룹화됩니다.
    또, 병렬로 처리가 진행되고 있는 것을 봐 알게 되어 있습니다.



    요약



    BuildKit를 활성화하여 빌드 시간을 단축할 수 있음을 확인했습니다.

    BuildKit에는 이 외에도 기밀 정보를 컨테이너에 건네주는 옵션이나, SSH 에이전트에 의한 접속을 허가하는 옵션등이 추가되고 있는 것 같습니다. 또 기회에 시험해보고 싶습니다.

    덧붙여서, 빌드한 Dockerfile 은 이쪽입니다.

    좋은 웹페이지 즐겨찾기