728x90
반응형
스프링 부트 환경으로 개발된 어플리케이션(이하 앱)을 도커(컨테이너)에 담아서
서비스 실행하는 절차를 알아보겠습니다.
전제조건 : 도커 환경 구성, 메이븐 환경 구성
방법1)
1. 프로젝트 루트 폴더에 Dockerfile 생성 : 도커 이미지 생성하기 위함
FROM java8
VOLUME /tmp
ADD target/spring-boot-test-0.0.1-SNAPSHOT.war test.war
ENV_SPRING_PROFILES_ACTIVE docer
EXPOSE 8080
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/ ./urandom", "-jar", "/test.war"]
2. 패키징 : target 디렉토리에 war파일 생성
$ mvn clean package
3. 도커 이미지 생성 : 루트 폴더에 Dockerfile이 있기 때문에 가능
$ docker build -t springboot/test:v1 .
4. 도커 이미지가 생성 되었는 지 확인.
$ docker image ls
5. 해당 도커 이미지를 컨테이너화(=run)
$ docker run -d -p 8080:8080 springboot/test:v1
6. 도커 컨테이너 목록 확인
$ docker container ls
7. 브라우저를 열어 해당 서비스 이용
예시) http://localhost:8080
방법2) 패키징과 도커 이미지화를 한번에
1. pom.xml 수정
<properties>
~
<docker.image.prefix>springboot</docker.image.prefix> <!-- 추가 -->
~
</properties>
~
~
~
<build>
<!-- 해당 플러그인 추가 -->
<plugins>
~
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.1</version>
<configuration>
<imageName>${docker.image.prefix}</imageName>
<dockerDirectory>src/main/resources/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}</include>
</resource>
</resources>
</configuration>
</plugin>
~
</plugins>
</build>
2. src/main/resources 에 docker 디렉토리 생성
3. docker 디렉토리에 Dockerfile 생성
FROM java8
VOLUME /tmp
ADD spring-boot-test-0.0.1-SNAPSHOT.war test.war
ENV_SPRING_PROFILES_ACTIVE docer
EXPOSE 8080
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/ ./urandom", "-jar", "/test.war"]
4. 빌드 및 이미지 생성
$ mvn package docker:build
5. 이미지 생성 확인 후, 컨테이너 화(run)
$ docker image ls
$ docker run -d -p 8080:8080 springboot/test
6. 브라우저를 열어 해당 서비스 이용
728x90
'스마트웹앱콘텐츠전문가 > 도커 및 쿠버네티스' 카테고리의 다른 글
[오류]iptables: No chain/target/match by that name. (0) | 2020.11.18 |
---|