Spring Framework 기반의 Maven 프로젝트 빌드 후 Docker 이미지 만들기

Maven 프로젝트로 구성된 소스를 빌드 후 이미지를 생성 하려면 개인 PC 또는 서버에 java , maven , docker 등 빌드 과정에 필요한 프로그램들이 설치 되어 있어야 합니다. 그리고 버젼에 맞게 다르게 빌드를 해야 한다면 해당 버젼을 지우거나 , 추가로 설치를 해야하는 번거로운 작업을 해야 하는데 앱스를 활용하면 이런 번거로운 작업을 할 필요도 없을 뿐더러 maven 외 node , python , go 등 대부분의 언어를 빌드 후 이미지 생성을 할수 있습니다. 아래 내용은 위와 같이 쉽게 이미지 빌드 후 이미지 만드는 방법을 설명합니다.

빌드 메뉴 화면으로 이동 후 빌드 생성 버튼을 클릭 합니다.

앱스 빌드 메뉴    앱스 빌드 메뉴에서 빌드 생성 버튼 클릭

빌드 생성시 필요한 기본 정보를 입력을 합니다. 그리고 빌드 과정에 필요한 소스는 , 코드 레파지토리 작업을 이용합니다.
코드 레파지스토리는 git 서버를 이용하는 사용자는 모두 가능합니다. ( SVN은 지원되지 않습니다.)

앱스 신규 빌드 생성 후 빌드정보입력 화면

앱스 빌드 작업 추가 화면

아래는 빌드 테스트를 위한 SAMPLE 소스 입니다.

테스트를 위해 참고 하시면 됩니다.

sample 주소 : https://github.com/acornapps/tomcat-springmvc.git

앱스 소스 코드 리파지토리 빌드 작업 생성 화면

소스 레파지스토리 작업 추가가 끝났다면 빌드 & 이미지 생성을 위한 Dockerfile 을 작성합니다.
도커 파일 작성을 위한 방법은 빌드 작업 목록에서 이미지 빌드 작업을 추가하여 아래 내용 참고하여 개인소스에 맞게 작성을 하면 됩니다. 

앱스 이미지 빌드 작업 생성 화면

Sample Dockerfile :

FROM maven:3.5.0-jdk-8 AS builder

# speed up Maven JVM a bit
ENV MAVEN_OPTS=”-XX:+TieredCompilation -XX:TieredStopAtLevel=1″

# make source folder
RUN mkdir -p /app
WORKDIR /app

# copy other source files (keep code snapshot in image)
COPY app-src/pom.xml /app
COPY app-src/src /app/src

# run packaging
RUN mvn package -T 1C

# customize base JDK version here
FROM tomcat:latest
MAINTAINER skyikho@acornsoft.io
COPY –from=builder /app/target/ROOT.war /usr/local/tomcat/webapps/
EXPOSE 8080

여기까지 오셨다면 이제 실행이란 버튼만 클릭 후 실시간으로 빌드 되는 과정을 지켜 보기만 하면 됩니다.^^;;

앱스 이미지 빌드 진행 상황 조회 화면

정상적으로 빌드 작업이 완료 되면 목록에서 빌드 상태가 DONE 로 변경 되고 , 앱스를 통하여 생성한 이미지를 배포 할수 있습니다.

위에 빌드는 간단하게 소스를 다운로드 받고 이미지 빌드 하는 과정을 알아보았습니다.
빌드 실행 중간 , 완료 후 어느시점에  FTP , SFTP , REST API 작업 유형을 추가하여 파일을 전송하거나 API 사용하여 이벤트 처리도 가능합니다
maven 뿐만 아니라 node , python 대부분의 언어는 빌드 후 이미지 생성이 가능합니다.
이미지 만들었으니 이제 배포 하러 가볼까요?