[Docker] Spring-Boot와 MariaDB를 한 컨테이너에서 실행 및 배포

2023. 10. 25. 00:09· Docker
목차
  1. Docker를 사용하여 Spring Boot와 MariaDB를 한 컨테이너에서 실행 및 배포하기
반응형

Docker를 사용하여 Spring Boot와 MariaDB를 한 컨테이너에서 실행 및 배포하기

Docker Compose를 사용하여 Spring Boot 애플리케이션과 MariaDB를 한 컨테이너에서 실행하고 배포하는 방법을 알아보겠습니다. Docker Compose를 사용하면 애플리케이션과 데이터베이스를 간편하게 관리할 수 있습니다.

  1. Docker Compose 파일과 Dockerfile 작성하기

먼저, 프로젝트 디렉토리에 docker-compose.yml 파일을 작성합니다.

version: '3.8'


services:
database:
container_name: database
image: mariadb
volumes:
# DB의 정보를 호스트OS에 저장하기 위한 볼륨 매핑
- ~/docker/mariadb/etc/mysql/conf.d:/etc/mysql/conf.d:ro
- ~/docker/mariadb/var/lib/mysql:/var/lib/mysql
- ~/docker/mariadb/var/log/maria:/var/log/maria
environment:
- MYSQL_DATABASE={사용할 DATABASE명}
- MYSQL_ROOT_PASSWORD={ROOT 계정 비밀번호}
- MYSQL_ROOT_HOST=%
command: ['--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
ports:
- 3306:3306
volumes:
# DB가 실행될 때 SpringBoot보다 먼저 실행되는 스크립트
- ./init.sql:/docker-entrypoint-initdb.d/init.sql

application:
build: .
environment:
SPRING_DATASOURCE_URL: jdbc:mariadb://database:3306/tackle?useUnicode=true
SPRING_DATASOURCE_USERNAME: {SpringBoot에서 설정한 USERNAME}
SPRING_DATASOURCE_PASSWORD: {SpringBoot에서 설정한 PASSWORD}
ports:
- 8080:8080
depends_on:
- database

위의 docker-compose.yml 파일은 두 개의 서비스(database와 application)를 정의합니다. database 서비스는 MariaDB를 실행하고, application 서비스는 Spring Boot 애플리케이션을 실행합니다. 각 서비스의 설정을 적절히 수정하여 사용하시면 됩니다.

 

 

SpringBoot의 컨테이너 생성 영역입니다.

 

# 서버를 구동시킬 자바를 받아옵니다.
FROM adoptopenjdk:11-jre-hotspot

# `JAR_FILE` 이라는 이름으로 build 한 jar 파일을 지정합니다.
ARG JAR_FILE=./app.jar /app.jar

# 지정한 jar 파일을 app.jar 라는 이름으로 Docker Container에 추가합니다.
ADD ${JAR_FILE} app.jar

# app.jar 파일을 실행합니다.
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

 

같은 폴더에 위치한 빌드된 app.jar 를 컨테이너에 복사를 하여 컨테이너 안에서 MariaDB의 로딩이 끝나고 SpringBoot가 실행됩니다.

 

 

 

 

  1. Spring Boot 애플리케이션 설정하기
    Spring Boot 애플리케이션의 application.properties 또는 application.yml 파일에서 데이터베이스 연결 정보를 설정해야 합니다.
spring.datasource.url=jdbc:mariadb://database:3306/DATABASE명?useUnicode=true
spring.datasource.username=USER
spring.datasource.password=PASSWORD

위 설정에서 database는 Docker Compose 파일에서 정의한 MariaDB 서비스의 이름입니다. 데이터베이스 사용자의 이름과 비밀번호를 필요에 따라 설정을 수정하여 사용하시면 됩니다.

  1. 애플리케이션 빌드 및 실행하기
    이제 Docker Compose를 사용하여 애플리케이션을 빌드하고 실행할 수 있습니다.

Bash에서  docker-compose up -d


이 명령은 Docker Compose 파일을 기반으로 애플리케이션과 데이터베이스를 빌드하고 컨테이너를 실행합니다. -d 옵션은 백그라운드에서 실행하도록 합니다.

  1. 애플리케이션 확인하기
    애플리케이션과 데이터베이스가 성공적으로 실행되었는지 확인하기 위해 웹 브라우저에서 http://localhost:8080으로 접속해보세요. Spring Boot 애플리케이션의 홈 페이지가 표시되면 정상적으로 동작하는 것입니다.

 

반응형
저작자표시 비영리 (새창열림)
  1. Docker를 사용하여 Spring Boot와 MariaDB를 한 컨테이너에서 실행 및 배포하기
'Docker' 카테고리의 다른 글
  • [Docker] SpringBoot - Oracle DB ORA-01882: timezone region not found 에러
  • [Docker] Nginx-Proxy-manager
  • [Docker]Arm용 Docker, Docker-compose 설치
Future0_
Future0_
rm -rf /
Future0_
Luna Developer Blog
Future0_
전체
오늘
어제
  • 분류 전체보기 (112)
    • 프로그래밍 (4)
      • 알고리즘 (4)
    • 보안 (14)
      • Dreamhack (4)
      • Hackthebox (1)
      • Webhacking (9)
    • 프로젝트 (4)
    • 공부 (80)
      • Database (2)
      • Python (11)
      • System (4)
      • Java (13)
      • JSP (13)
      • Spring (11)
      • Kotlin (16)
      • 자료구조 (10)
      • 기계학습 (0)
    • Docker (4)
    • Github (2)
    • Tip (1)
    • 잡담 (2)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • SpringBoot
  • 1.9.22
  • 상속
  • 보안
  • 디버깅키해시
  • dreamhack
  • api 통신
  • android studio 삭제
  • 자료구조
  • 코틀린기본문법
  • ViewModel
  • 키 해시
  • cs
  • native app
  • Database
  • shared preference
  • Kotlin
  • React
  • Java
  • 자바빈즈
  • spring
  • Computer science
  • docker
  • 알고리즘
  • Python
  • webhacking
  • 프로그래밍
  • 컴퓨터
  • Android Studio
  • jsp

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
Future0_
[Docker] Spring-Boot와 MariaDB를 한 컨테이너에서 실행 및 배포
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.