멀티 빌더로 war파일을 가진 tomcat을 만든다.
멀티 빌더로 만드는 이유는 최종적으로 compiler가 없는 가벼운 container를 만들기 위해서이다.
아래 코드는 maven을 가진 container를 생성하여 war파일을 생성후,
tomcat을 가진 새로운 container를 생성하여 war파일을 maven container에서 tomcat container로 복사한다.
그리고 tomcat container만 이미지로 생성한다. (maven container는 사라진다)
FROM maven:3-openjdk-11 AS mbuilder
RUN mkdir /hello
RUN git clone <URL> /hello
WORKDIR /hello
RUN mvn package
FROM tomcat:9-jre11
COPY --from=mbuilder /hello/target/hello-world.war
/usr/local/tomcat/webapps/
Container가 Docker engine이 되어서 다른 Container를 띄우는 개념
Docker Engine이 되는 Container는 모든 권한을 갖고 있어야하므로 보안적으로 좋지 않다.
Container가 외부의(Host의) Docker를 조작하여 다른 Container를 띄우는 개념
Docker에서 Jenkins를 사용하기 위해서 d in d 개념을 사용할 것이다.