해결된 질문
작성
·
295
1
멀티스테이지에서 java 코드 빌드하는 컨테이너, jar파일 실행하는 컨테이너를 나눈다고 말씀해주셨어요!
이 과정에서 dockerfile을 통해 build하면,
각 컨테이너에 대한 이미지가 2벌 생성될것이라고 예상했는데 실행하는 부분만 이미지가 생성되는 이유를 알고싶습니다..!!
답변 2
0
kgw753님 안녕하세요. 데브위키입니다.
멀티스테이지의에서 생성되는 이미지는 마지막에 FROM 으로 추가한 최종 스테이지만 이미지로 빌드합니다! 그 외의 스테이지에서 사용된 임시 컨테이너는 이미지로 만들지 않고 자동으로 삭제됩니다.
CMD는 필수 지시어가 아니기 때문에 CMD가 없어도 이미지는 정상적으로 빌드됩니다 😀
강의 들으시면서 더 궁금하신 부분이 있으면 편하게 질문해주세요!
0
첫번째 컨테이너에서는 CMD가 없기 때문에 이미지가 실행되어도 수행할 동작이 없어서 이미지가 생성되지 않았다.
즉 이미지가 생성되기 위해서는 CMD가 설정되어야한다.
<< 혹시 이 추론이 맞을까요..!?
아닙니다! 최종 스테이지만 이미지로 빌드하는 것이 도커 이미지 빌드의 규칙입니다😊 CMD가 없으면 컨테이너가 잘 실행되지 않겠지만, Docker 이미지가 생성되기 위해서 CMD가 반드시 설정되어야 하는 것은 아닙니다.