inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

개발자를 위한 쉬운 도커

SpringBoot 백엔드 컨테이너 구성

스프링 빌드관련 질문드립니다

해결된 질문

352

bayyyy

작성한 질문수 3

0

"EC2에서 스프링 도커로 배포하기"를 검색어로 구글링을 해보면 거의 모든 블로그들에서

FROM amazoncorretto:17

ARG JAR_FILE=./build/libs/YOURAPP-0.0.1-SNAPSHOT.jar

COPY ${JAR_FILE} app.jar

ENTRYPOINT ["java","-jar","/app.jar"]

이와같은 방식으로 도커파일을 작성하던데, 이는 잘못된 도커파일 사용인가요?

 

저의 가설 1 : 로컬에서 openjdk 17버전으로 빌드후 ec2에 푸시, ec2에서 해당도커파일 실행 -> 자바 버전차이로 잠재적 버그 가능성 -> 잘못된 사용

 

가설 2: ci/cd 머신에서 동일하게 amazoncorretto:17를 사용해서 자바 gradle를 빌드, 빌드머신에서 도커이미지 생성, ec2에서는 도커이미지만 pull-> 빌드스테이지를 나눌필요없음 -> 의도한 사용

docker 가상화 ci/cd docker-compose github-actions docker-volume container

답변 1

2

황현우

bayyyy님 안녕하세요. 데브위키입니다.

말씀해주신 도커파일에는 애플리케이션 빌드 과정이 빠져있고 이미 만들어진 JAR파일을 COPY하는 과정만 있는 상태입니다.

잘못된 방식은 아니고 이런 방식으로 작성할 경우 두 가지 방식으로 활용하실 수 있습니다!

 

  1. 로컬 PC에서 이미지를 빌드할 경우

  • PC의 IDE에서 소스코드를 JAR파일로 빌드합니다. 이 경우 로컬 PC의 build/libs 경로에 JAR파일이 생성됩니다.

  • 도커파일 빌드 시 COPY지시어를 통해 JAR파일만 이미지 내로 복사하여 빌드합니다.

 

  1. CI/CD 파이프라인에서 사용할 경우

  • 해당 도커파일에서는 이미지를 빌드하는 과정이 없기 때문에 CI/CD파이프라인에서 별도로 빌드를 수행해야 합니다.

  • 이 부분은 파이프라인을 실행하는 소프트웨어마다 방식이 조금 다를 수 있습니다.

  • 저는 도커파일 내에서 애플리케이션 빌드도 함께 실행하는 것을 권장 드립니다. 캐시도 활용할 수 있고 무엇보다 어떤 CI/CD 파이프라인을 사용해도 활용할 수 있어 제품에 대한 종속성이 없기 때문입니다.

     

     

     

     

     

     

     

질문에 답변이 되셧는지요? 강의 들으시면서 궁금하신 점이 생기면 편하게 질문 주세요.

완강까지 응원하겠습니다!

33강 도커 빌드 강의의 docker file

0

37

1

개발환경에서 도커 설정

1

101

2

vscode 터미널 설정 관련 질문

0

103

1

쿠버네티스 강의 언제 나오나요..

2

128

2

postgresql-repmgr:15 지원 종료에 따른 대체 이미지 변경 질문드립니다!

1

186

2

섹션 9. 레이어 관리에서 alpine OS 사용 관련 질문 있습니다!

1

72

2

도커 가상 네트워크와 Stateless 특징 관련 질문

1

74

2

우분투 설치

0

71

2

도커 보안을 실무에서 어떻게 대비하시는지 궁금합니다.

1

240

2

컨테이너를 활용한 개발환경 통일에 관하여

1

96

2

k8s 강의 일정

1

114

2

컨테이너의 Stateless 제약 관련 질문

0

98

1

docker push 하는 중 "single-platform image ..." 메세지가 나오고, docker hub에 image와 tag가 정상적으로 등록되지 않습니다.

2

100

1

docker pull [이미지] 다운로드시 에러 해결 방법 문의

1

444

2

강의 재생 오류

1

88

1

Remote JVM Debug Setting

1

105

1

빌드 방식에 대해 질문 있습니다.

1

104

2

컨테이너 레이어 질문 있습니다.

1

106

1

컨테이너 가상화 호스트 OS

1

156

2

강의 이미지 사용

1

168

2

도커컴포즈 오류

0

163

2

USER 명령어와 관련하여 질문드립니다

1

112

1

강의 예정

1

178

2

실행오류

1

214

3