Dockerfile
src/main/resources/docker/Dockerfile 생성
FROM java:8
VOLUME /tmp
ADD spring-boot-journal-0.0.1-SNAPSHOT.war journal.war
ENV SPRING_PROFILES_ACTIVE docker
EXPOSE 8443
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/journal.war"]
- FROM java:8
OpenJDK 8 버전이 포함된 9 이미지를 가져온다.
- VOLUME
스프링 부트는 톰캣용 작업 폴더를 자동 생성하기 때문에 볼륨을 만들어야 한다.
- ADD 아티팩트ID + 버전 + 확장자
컨테이너 루트에 WAR/JAR 파일을 각각 journal.war.journal.jar 파일로 복사
- ENV
도커 프로파일을 켜는 필요한 환경변수 추가
- EXPOSE
SSL 전용 8443 포트로 서비스한다.
- ENTRYPOINT
컨테이너 시동 시 실행할 정보를 선언한다.
pom.xml
<properties>태그 안에 <docker.image.prefix> 태그를 넣어준다.
<docker.image.prefix>springboot</docker.image.prefix>
<plugins> 태그 안에 아래의 플러그인을 추가하자.
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.1</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/resources/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.war</include>
</resource>
</resources>
</configuration>
</plugin>
<dockerDirectory>에 Dockerfile 위치를 작성한다.
빌드 및 이미지 생성
$ ./mvnw clean package docker:build -DskipTests=true
$ docker run -p 8443:8443 springboot/spring-boot-journal
브라우저를 열고 스프링 부트 앱 확인 (도커화)
'BOOK REVIEW > 실전 스프링 부트 워크북' 카테고리의 다른 글
[실전 스프링 부트 워크북] 독서 후기 REVEIW (0) | 2021.08.20 |
---|---|
[실전 스프링 부트 워크북] CH12 스프링 부트 배포 - JAR 만들기 & WAR 만들기 (0) | 2021.08.19 |
[실전 스프링 부트 워크북] CH12 스프링 부트 배포 - SSL 기능 통합하여 배포하기 (0) | 2021.08.19 |
[실전 스프링 부트 워크북] CH6. 스프링 부트 테스트 (0) | 2021.08.16 |
[실전 스프링 부트 워크북] CH5. 스프링과 스프링 부트 (0) | 2021.08.15 |