도커에서 메이븐 프로젝트 실행하기

ojwman·2020년 3월 2일
0

Spring Boot 프로젝트를 git에서 소스를 받아 도커로 배포하려 한다.

환경

  • Java 8
  • Maven
  • Spring Boot
  • git, GitHub
  • linux(devian)
  • Docker

순서

  1. shell script 작성
    • git에서 소스를 clone
    • maven으로 소스 빌드
    • 빌드된 spring boot 프로젝트 실행
  2. Dockerfile 작성
    • maven, java8 도커 이미지 사용
    • shell script 실행
  3. Dockerfile로 빌드
    • Dockerfile로 도커 이미지 빌드
  4. 도커 이미지 실행
    • shell script 내용 실행됨


springboot-server-start.sh

#!/bin/bash
# clone git
git clone https://github.com/ojwman/sbp-shopping-mall

# move
cd sbp-shopping-mall

# build
mvn package

# run
cd target
java -jar sbp-shopping-mall-0.0.1-SNAPSHOT.jar

Dockerfile

FROM maven:3.3-jdk-8
ADD ./springboot-server-start.sh app.sh
ENTRYPOINT ["/bin/sh","app.sh"]
  • FROM: maven3.3과 jdk8을 사용하는 이미지를 사용
  • ADD: 현재 경로에 'springboot-server-start.sh'을 도커에 'app.sh'으로 추가
  • ENTRYPOINT: Docker Container에서 최초로 실행할 명령어

Docker build

Dockerfile이 존재하는 경로에서 다음으로 도커 이미지를 빌드한다.

docker build --tag ojwgoodman/ojw-mall:0.3 .
  • docker: 도커로
  • build: 빌드해라
  • --tag: 태그를
  • ojwgoodman/ojwmall:0.3: 이미지명:태그
  • .: 현재 디렉토리에 있는 Dockerfile 내용으로

Docker run

docker run -d -p 9090:9090 ojwgoodman/ojw-mall:0.3
  • docker: 도커로
  • run: 실행해라
  • -d: 데몬으로
  • -p: 포트설정
  • 9090:9090: 도커포트:리눅스포트
  • ojwgoodman/ojw-mall:0.3: 이미지명:태그

profile
Web SI Developer

2개의 댓글

comment-user-thumbnail
2020년 11월 11일

굳이 매 컨테이너 실행마다 clone build를 반복하는 특별한 이유가 있나요?

1개의 답글