일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- EC2
- Github Actions
- MongoDB
- AWS EC2
- python
- deploy
- RDS
- Java
- fastapi
- docker
- 500
- webhook
- macbook
- springboot
- javascript
- github
- axios
- MUI
- Troubleshooting
- React
- nodejs
- linux
- error
- ngrok
- Express
- Spring
- AWS
- js
- TypeScript
- Jenkins
- Today
- Total
BEAT A SHOTGUN
[DOCKER] Github Actions 의 build 에 Cache 사용하기 본문
배포된 프로젝트를 리팩토링 하는데 왜 그런지 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초가 되었다.
큰 차이가 없어보이지만, 프로젝트가 커진다면 매우 유용할 것 같다.
하지만 아직 저 글이 나오고 일년이 지난 지금
왜 아직 실험적이죠
언제 고장날 지 모르니 확인을 계속 해야겠다.
아무튼
캐싱하기 성공
끝
'PROJECT' 카테고리의 다른 글
[Flutter] 진정한 하이브리드 앱의 시작 - 1 (0) | 2023.04.24 |
---|---|
[CI/CD] FastAPI 배포하기 - AWS EC2, Github Actions, Docker (0) | 2023.03.10 |
[React Native] React-Native-Web 으로 진정한 하이브리드 앱을 만들어보자 - 2 (0) | 2023.03.07 |
[React Native] 시작하기 - 1 (0) | 2023.03.06 |
[CI/CD] Github Actions 와 Runners 그리고 AWS EC2 linux 으로 React 프로젝트 배포하기 (1) | 2022.12.28 |