2019 업데이트
Docker v18.06부터 Build Kit 라는 새로운 이미지 빌더를 사용하는 옵션이 있습니다 .
Docker와 함께 번들로 제공되므로 아무것도 설치할 필요가 없습니다. Dockerfile
구문 과 호환 되므로를 변경할 필요가 없습니다 Dockerfile
.
레거시 도커 빌드 및 새로운 도커 BuildKit
다음은 빌드 디렉토리에서 사용되지 않은 거대한 파일로 이미지를 작성하는 예입니다.
레거시 도커 빌드 :
$ time docker image build --no-cache .
Sending build context to Docker daemon 4.315GB
[...]
Successfully built c9ec5d33e12e
real 0m51.035s
user 0m7.189s
sys 0m10.712s
새로운 Docker BuildKit :
$ time DOCKER_BUILDKIT=1 docker image build --no-cache .
[+] Building 0.1s (5/5) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 37B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
[...]
=> => writing image sha256:ba5bca3a525ac97573b2e1d3cb936ad50cf8129eedfa9 0.0s
real 0m0.166s
user 0m0.034s
sys 0m0.026s
유일한 변화는 DOCKER_BUILDKIT=1
환경 변수이며 시간의 차이는 엄청납니다.
.dockerignore
파일
있음을 유의하시기 바랍니다 .dockerignore
파일이 여전히 유효하고 유용합니다. Dockerfile
같은 일부 명령 COPY . .
은 여전히 .dockerignore
규칙 을 고려합니다 . 그러나 빌드 디렉토리의 사이드 파일 (에서 참조되지 않음 Dockerfile
)은 더 이상 BuildKit에 의해 "빌드 컨텍스트"로 복사되지 않습니다.