인프런 커뮤니티 질문&답변

kgw753님의 프로필 이미지

작성한 질문수

개발자를 위한 쉬운 도커

멀티 스테이지 빌드(Multi-Stage Build)

멀티 스테이지 빌드 질문이있습니다!

해결된 질문

작성

·

293

1

멀티스테이지에서 java 코드 빌드하는 컨테이너, jar파일 실행하는 컨테이너를 나눈다고 말씀해주셨어요!

 

이 과정에서 dockerfile을 통해 build하면,

각 컨테이너에 대한 이미지가 2벌 생성될것이라고 예상했는데 실행하는 부분만 이미지가 생성되는 이유를 알고싶습니다..!!

답변 2

0

데브위키님의 프로필 이미지
데브위키
지식공유자

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

멀티스테이지의에서 생성되는 이미지는 마지막에 FROM 으로 추가한 최종 스테이지만 이미지로 빌드합니다! 그 외의 스테이지에서 사용된 임시 컨테이너는 이미지로 만들지 않고 자동으로 삭제됩니다.

CMD는 필수 지시어가 아니기 때문에 CMD가 없어도 이미지는 정상적으로 빌드됩니다 😀

 

강의 들으시면서 더 궁금하신 부분이 있으면 편하게 질문해주세요!

0

kgw753님의 프로필 이미지
kgw753
질문자

첫번째 컨테이너에서는 CMD가 없기 때문에 이미지가 실행되어도 수행할 동작이 없어서 이미지가 생성되지 않았다.

즉 이미지가 생성되기 위해서는 CMD가 설정되어야한다.

<< 혹시 이 추론이 맞을까요..!?

데브위키님의 프로필 이미지
데브위키
지식공유자

아닙니다! 최종 스테이지만 이미지로 빌드하는 것이 도커 이미지 빌드의 규칙입니다😊 CMD가 없으면 컨테이너가 잘 실행되지 않겠지만, Docker 이미지가 생성되기 위해서 CMD가 반드시 설정되어야 하는 것은 아닙니다.

kgw753님의 프로필 이미지

작성한 질문수

질문하기