circleci를 사용하여 테스트를 실행하고 도커 이미지를 배포하지만 도커 이미지를 캐싱하는 데 문제가있어 빌드 시간이 매우 길어졌습니다.캐싱 도커 이미지 circleci
circle.yml
machine:
services:
- docker
dependencies:
cache_directories:
- "~/docker"
override:
- if [[ -e ~/docker/image.tar ]]; then echo "cached files exists!" ; docker load -i ~/docker/image.tar; fi
- docker images
- docker build -t myorg/myapp:v1.1.1 .
- mkdir -p ~/docker; docker save myorg/myapp:v1.1.1 > ~/docker/image.tar
Dockerfile :
FROM debian:latest
MAINTAINER My Name <[email protected]>
RUN apt-get update && apt-get install -y vim
CMD ["sleep", "3"]
GitHub의에 밀어 빌드가 circleci에서 잘 실행
여기에 작동하지 않는 최소한의 예입니다. 그러나 도커 이미지는 실행될 때마다 다시 작성됩니다. 이는 생산 고정물 이미지에서 매우 많은 시간을 소비합니다.
docker images
명령의 출력에서 명확한 image.tar 파일이로드되었지만 dockerfile이 변경되지 않아도 항상 매번 전체 이미지를 만듭니다.
여기에 라인 docker build -t myorg/myapp:v1.1.1 .
docker build -t myorg/myapp:v1.1.1 .
Sending build context to Docker daemon 67.07 kB
Step 1 : FROM debian:latest
latest: Pulling from library/debian
Digest: sha256:370807fef6f790d8519399026d26461bdf8360f94ab450da94c2350bea3cc66d
Status: Downloaded newer image for debian:latest
---> ae85c48b369c
Step 2 : MAINTAINER My Name <[email protected]>
---> Running in 4ffd69c2a82d
---> 6029750ba0f3
Error removing intermediate container 4ffd69c2a82d: rmdriverfs: Driver btrfs failed to remove root filesystem 4ffd69c2a82d644ea7ee8576cc06e67ee412f651edecbc40932394c057aa931d: Failed to destroy btrfs snapshot /var/lib/docker/btrfs/subvolumes for 4ffd69c2a82d644ea7ee8576cc06e67ee412f651edecbc40932394c057aa931d: operation not permitted
Step 3 : RUN apt-get update && apt-get install -y vim
---> Running in 544047b8c170
Ign http://httpredir.debian.org jessie InRelease
Get:1 http://httpredir.debian.org jessie-updates InRelease [142 kB]
Get:2 http://httpredir.debian.org jessie Release.gpg [2373 B]
Get:3 http://httpredir.debian.org jessie Release [148 kB]
Get:4 http://security.debian.org jessie/updates InRelease [63.1 kB]
Get:5 http://httpredir.debian.org jessie-updates/main amd64 Packages [17.6 kB]
Get:6 http://httpredir.debian.org jessie/main amd64 Packages [9064 kB]
Get:7 http://security.debian.org jessie/updates/main amd64 Packages [390 kB]
Fetched 9828 kB in 2s (4030 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
The following extra packages will be installed:
libgpm2 vim-common vim-runtime
Suggested packages:
gpm ctags vim-doc vim-scripts
The following NEW packages will be installed:
libgpm2 vim vim-common vim-runtime
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 6218 kB of archives.
After this operation, 28.9 MB of additional disk space will be used.
Get:1 http://httpredir.debian.org/debian/ jessie/main libgpm2 amd64 1.20.4-6.1+b2 [34.0 kB]
Get:2 http://httpredir.debian.org/debian/ jessie/main vim-common amd64 2:7.4.488-7 [184 kB]
Get:3 http://httpredir.debian.org/debian/ jessie/main vim-runtime all 2:7.4.488-7 [5047 kB]
Get:4 http://httpredir.debian.org/debian/ jessie/main vim amd64 2:7.4.488-7 [953 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 6218 kB in 0s (10.7 MB/s)
Selecting previously unselected package libgpm2:amd64.
의 출력의 일부는 고정 표시기 이미지마다 재건 왜 어떤 생각인가?