Coffee-Street / strada

api server
MIT License
2 stars 2 forks source link

Docker multi-stage build 도입 #38

Closed monthly-code closed 2 years ago

monthly-code commented 3 years ago

docker multi-stage build

하나의 DockerFile을 통해 한 개의 image를 만드는 과정에서 불필요한 정보는 제거하고 필요한 결과만 계속해서 전달해서 docker image를 경량화 하는 방법

Requirement

deploy 하는 container는 있지만 build하는 container가 없어서 local에서 생성 후 형상 관리에 올린 후 가져다 사용

Solution

DockerFile에 stage 별로 나누고 기존 deploy 하기 전에 build container를 작성 gradlew(gradle wrapper)를 통해 빌드 처리 build container에서 나온 jar 파일만 deploy container로 copy 하도록 작성

reference

wnsgml972 commented 3 years ago

오 github action 빌드 성공한 거 보니까 성공한 것 같네요?

monthly-code commented 3 years ago

@wnsgml972 로컬에서 한 번 테스트 해봐야 할 거 같아요. 저기 보면 gradle build가 실행된게 docker에서 실행된건지 알 수가 없네요. DockerFile을 이용해서 된건지 확인 부탁드려요.

wnsgml972 commented 3 years ago

넵넵 그거 말고도 .jar가 올라갈 수 있게 .gitignore를 수정했었는데 그거 다시 안올라가게 변경하고 현재 올라간 .jar를 제거하기 위해 아래 명령어도 쳐서 같이 PR 구성해야 할 것 같습니다

git rm -r --cached .
git add .
git commit -m "fixed untracked files"
monthly-code commented 3 years ago

@wnsgml972 테스트 성공하면 .jar 파일 ignore하려고 했는데 todo 내용을 남겨주셔서 감사합니다. 오늘 추가 테스트 해본 이후에 ignore작업까지 해서 pr 구성할게요.

wnsgml972 commented 3 years ago

저도 로컬에서 테스트 해보겠습니다