본문 바로가기

프로젝트 & TIL/일별 공부 기록 (백엔드 스쿨)

44일차 - 스프링부트 앱 도커라이즈

일반 스프링부트 앱 도커라이즈

간단한 스프링부트 앱 생성 > 깃허브 푸시

  

yum install git -y => 깃 설치

yum install java-17-openjdk -y => java-17-openjdk 설치

yum install java-17-openjdk-devel -y

  

mkdir -p /docker_projects/hello_1/project => 파일 생성

cd /docker_projects/hello_1/project => 생성한 파일로 이동

git clone ~~~ . => 프로젝트 클론

  

chmod 744 gradlew => 실행 권한 설정

./gradlew clean build => 빌드

java -jar build/libs/app-0.0.1-SNAPSHOT.jar => 실행(종료할 때는 Ctrl+c)

  

vim Dockerfile => Dockerfile 생성

FROM openjdk:17-jdk-alpine
ARG JAR_FILE=build/libs/app-0.0.1-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]

 

docker build -t hello . => 이미지 생성

  

docker run \
  --name=hello_1 \
  -p 8080:8080 \
  -d \
  hello

위와 같이 이미지 실행

  

크롬에서 192.168~:8080 접속해서 확인


DB 사용하는 스프링부트 앱 도커라이즈

스프링부트 앱 생성 > 깃허브 푸시

mkdir -p /docker_projects/db_1/project => 파일 생성

cd /docker_projects/db_1/project => 생성한 파일로 이동

git clone ~~~ . => 프로젝트 클론

chmod 744 gradlew

  

docker exec -it mariadb_1 mysql -u root -p

CREATE DATABASE app20220916_2__test;

exit

  

testDbId=아이디 testDbPw=비밀번호 ./gradlew clean build => 아이디, 비밀번호 설정 적용해서 빌드

  

docker exec -it mariadb_1 mysql -u root -p

CREATE DATABASE .... => 필요한 DATABASE, TABLE 등 생성

exit

  

vim Dockerfile => Dockerfile 생성

FROM openjdk:17-jdk-alpine
ARG JAR_FILE=build/libs/app-0.0.1-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","-Dspring.profiles.active=prod","/app.jar"]

  

docker build -t hellodb . => 이미지 생성

  

docker run \
  --name=hellodb_1 \
  -p 8081:8080 \
  -d \
  hellodb

위와 같이 이미지 실행