728x90
먼저 docker를 사용해서 배포를 했습니다.
ssh 역시 적용하고자하였으나 잘 되지않아 일단 localhost에서만 하도록 하였습니다.
기존에는 테스트 단계였기에 인-메모리 DB인 H2 데이터베이스를 사용하였습니다.
현재는 mysql 8.0 데이터베이스를 적용하였습니다.
먼저 DB를 docker에 저장하면서, 어플리케이션을 같이 실행(배포)하기 위해
docker-compose.yml를 사용해서 배포를 했습니다.
application.yml에 있는 정보 일부를 docker-compose.yml로 넘깁니다.
그리고 ./gradlew build를 사용해서 빌드를 하고 jar를 생성하여 도커에 배포합니다.
version: "3"
services:
database:
image: mysql
container_name: workshopDB
environment:
- MYSQL_DATABASE=workshopTodo
- MYSQL_ROOT_HOST=%
- MYSQL_ROOT_PASSWORD=1234
command: ['--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
ports:
- "3306:3306"
volumes:
- /home/revision/docker_spring/database/workshopTodo/:/var/lib/mysql
networks:
- test_network_02
restart: unless-stopped
application:
build: .
restart: always
ports:
- "80:8080"
depends_on:
- database
container_name: workshop_todo
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://database:3306/workshopTodo?useSSL=false&serverTimezone=UTC&LegacyDatetimeCode=false&allowPublicKeyRetrieval=true
SPRING_DATASOURCE_USERNAME: root
SPRING_DATASOURCE_PASSWORD: 1234
networks:
- test_network_02
networks:
test_network_02:
mysql이 종료될 수도 있기에 종료되었다면 다시 재실행하도록 하도록 하고
SpringApplication은 늘 재실행하도록 합니다.
FROM openjdk:11-jdk-oracle AS builder
VOLUME /tmp
ARG JAR_FILE=./build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
Dockerfile에는 jdk 및 VOLUME을 설정한 뒤, docker 배포를 합니다.
참조
이상입니다.
'Spring > 괴발개발' 카테고리의 다른 글
[괴발개발] REST API - 이메일 인증 (0) | 2022.03.03 |
---|---|
[괴발개발] REST API - 인증 (0) | 2022.03.02 |
[괴발개발] TODO 웹 개발 노트 - 예외처리 및 완료 (0) | 2022.02.20 |
[괴발개발] TODO 웹 개발 노트 - 권한 부여 (0) | 2022.02.19 |
[괴발개발] 공지 (0) | 2022.02.19 |