스마트웹앱콘텐츠전문가/도커 및 쿠버네티스

스프링 부트와 도커

9D4U 2020. 11. 18. 17:26
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