[DOCKER] Github Actions 의 build 에 Cache 사용하기

THOVY·2023년 4월 4일
0

배포된 프로젝트를 리팩토링 하는데 왜 그런지 docker cache 되도록 했는데 뭔가 build 할 때마다 시간이 똑같다.
readme 하나 추가했는데도 시간이 build 에만 1분이 걸린다.

build cache 가 안 쓰인 것 같다

용서할 수 없지

시작 👊

예전에 Github Actions 로 처음 배포를 할 때 본 적이 있다.
카카오 기술블로그

build 시간이 같은 걸 보고 문득 이 글이 생각났다.

그런데 엥? 난 분명 cache 가 되도록했는데잉...

그러나 Github Actions 의 Runtime 환경은 매 번 초기화 되기 때문에 아아아무런 소용이 없다는 이야기

이유까지 알았으니 Docker 가 하라는 대로 해보자

docker hub secretkey

docker hub 에 오랜만에 들어가서 username 과 token 을 생성해오자.
secret 을 만들어 주고


	...

      - name: Setup docker buildx
        id: buildx
        uses: docker/setup-buildx-action@v2

	...

      - name: Login to DockerHub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME}}
          password: ${{ secrets.DOCKERHUB_TOKEN}}

      - name: Build and push
        id: docker_build
        uses: docker/build-push-action@v4
        with:
          context: .
          push: true
          tags: ${{ env.DOCKER_IMAGE }}:latest
          cache-from: type=gha
          cache-to: type=gha, mode=max
    
    ...
  

내가 짜놓았던 기존 코드에는 v1, v2 이랬는데 v4도 있네

아무튼 저렇게 하면 도커 허브에 저장하는 것 같다.
그러나 Docker hub 에서 확인할 수는 없다.

아무튼 저렇게 하고 빌드해보자.

결과


48초


20초
특히나 Build and push 를 보면 33초 걸리던게 5초 걸렸다.
거의 15% 정도로 줄어버린 거 아니야?!
근데 지금 아무것도 안 바꾸고 그냥 돌려서 그런 걸지도 ㅋㅋㅎㅎㅋㅎㅋㅎ
하지만 분명히

캐싱하고 있다!

내 프로젝트가 매우 가벼운 프로젝트기 때문에 결과적으로 deploy 까지해서 1분 50초 걸리던 게 1분 20초가 되었다.
큰 차이가 없어보이지만, 프로젝트가 커진다면 매우 유용할 것 같다.

하지만 아직 저 글이 나오고 일년이 지난 지금

왜 아직 실험적이죠

언제 고장날 지 모르니 확인을 계속 해야겠다.

아무튼

캐싱하기 성공

profile
BEAT A SHOTGUN

0개의 댓글