Spring Project 로컬에서 jar 파일로 배포 경험해보기

오목조목·2023년 9월 27일
post-thumbnail

실제 리눅스(Ubuntu) 서버가 있다고 했을 때,

프로그램 배포 과정과 발생할 수 있는 문제들 살펴보기

<Spring Project 배포>

자바 다운로드 및 JAVA_HOME 설정


sudo apt install openjdk-17-jdk #openjdk 17버전 설치 -> 플젝 사이즈 크면 eclipse 설치 고려
																#yum install은 CentOS에서만 사용 가능

sudo update-alternatives --config java #서버의 JAVA 버전 변경할 수 있는 명령어

readlink -f /usr/bin/java #JAVA_HOME 경로를 확인할 수 있는 명령어
	=> /usr/lib/jvm/java-17-openjdk-amd64 ... #여기까지가 보통 JAVA_HOME 경로

#JAVA_HOME 경로 설정하는 방법
vi .bashrc
 => export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
		#이 방법을 사용하면 JAVA 버전을 변경했을 떄, 자동으로 JAVA_HOME도 변경된다.

mysql 설정

#Mysql DB 설치
sudo apt install mysql-server #Amazon EC2 서버를 사용하게 된다면, DB설치가 필요 없을수도 있다. (RDS 사용)

#root 계정으로 mysql 로그인
sudo mysql

#board 라는 이름의 db 생성 (+ char 옵션 세팅)
create database board default character set utf8mb4;

#유저 생성 및 권한 부여
create user 'seomoon'@'localhost' identified by '1234';
create user 'seomoon'@'%' identified by '1234';
grant all privileges on board.* to seomoon@'%';

#생성된 유저로 mysql 로그인 가능한지 확인
mysql -u seomoon -p

#window powershell에서 mysql 조작?
C:\Program Files\MySQL\MySQL Server 8.1\bin << 경로 기억.
	=> 시스템 환경변수 PATH에 위의 내용 추가.
	=> window powershell에서 mysqldump 사용 가능해짐.

# C:\work 로 이동해서 진행? (해당 작업은 root 계정만 가능?)
mysqldump -u root -p board -r board.sql
	=> work에 board.sql 파일이 생성된 것을 확인할 수 있다.

#생성한 board.sql을 ubuntu(config됨) 쪽의 mysql-data 디렉토리로 전송
scp .\board.sql ubuntu:~/work/mysql-data/


#ubuntu로 넘어와서 넘겨받은 db에 root로 접속하여 파일 읽기
sudo mysql -u root -p --default-character-set=utf8mb4 board
set names 'utf8';
source board.sql;

#작업 완료후 user로 접속
mysql -u seomoon -p 
use board;

scp .\board.jar ubuntu:~/board/jar-dist/

jar 파일 배포 및 실행

1. 인텔리제이 프로젝트에서 Maven jar 파일 생성 (아티팩트 빌드)

2. jar 파일 경로 확인 # (보통 target 아래에 있음)

3. (powershell) scp .\board.jar ubuntu:~/board/jar-dist/ # (jar 파일 리눅스 서버로 전송)

4. (bash) java -jar board.jar
profile
블로그 이전중입니다 https://www.notion.so/2465adc69d7e805a9fd1e1ca971d657d?source=copy_link

0개의 댓글