Linux에서 Spring 프로젝트 돌리기 (JDK, Docker, mariadb 설치)
Linux에서 Spring 프로젝트 돌리기 (JDK, Docker, mariadb 설치) — #개발자의도구들 #LinuxSpring #리눅스스프링 #리눅스자바 #리눅스자바다운로드 🚨📝 📖 📒✏️...
#개발자의도구들 #LinuxSpring #리눅스스프링 #리눅스자바 #리눅스자바다운로드
🚨📝 📖 📒✏️💡🔍
AI스쿨 msa기반 java 백엔드 코스 중에 공부한 내용을 작성하였습니다
\* 현재 Spring x 프로젝트를 진행하고 있습니다. 전체 목차를 보시려면 여기를 눌러주세요.
\* 해당 프로젝트 이전에 공부한 내용을 보시려면 여기를 눌러주세요.
Java 다운로드
바로 이전글에서 리눅스 서버 셋팅 및 SSH로 원격접속까지 해보았습니다. 오늘은 Spring 프로젝트를 Linux 내부에 돌려보는 것을 목표로 하겠습니다.
우선 JVM이 서버내에 있어야 하므로 JDK를 다운받아 봅시다. 기존에 사용하던 버전이 17이기 때문에 버전에 맞춰서 다운 받았습니다.
JDK 설치
sudo apt update
sudo apt search openjdk // 설치 가능한 jdk 버전 확인 명령어
sudo apt install openjdk-17-jdk-y
// 설치 확인
java -version
// 예상 출력
openjdk version "17.0.8"
OpenJDK Runtime Environment (build 17.0.8+7-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 17.0.8+7-Ubuntu-0ubuntu120.04, mixed mode)
정상적으로 버전이 나온다면 JDK설치는 끝입니다.
Docker
DB설치
현재 Spring에서 MariaDB를 사용하고 있습니다. mariaDB를 바로 설치해도 사용해도 되는데 다음과 같은 오류가 나왔습니다.
mariadb가 libssl1.1 을 필요로 하는데 우분투 최신버전에서는 존재하지 않음.
해결을 위해 이런저런 시도를 해보다가, 잘 안되어서 그냥 docker 공부도 할 겸 docker를 사용하기로 했습니다.
Dokcer
아직 배우지 않은 단계라 명확하게 개념은 잘 모르지만, 제가 사용해본 결과 다음과 같은 결론을 내렸습니다.
1. 서버내의 서버 같다.
2. 서버인데, 뭔가 필요한 모듈들이 내부에 설치되어 있어서 사용하기 편하다.
3. 여러 서버와 호환이 잘될 것 같다.
아직 정식으로 공부하지 않아서, 그냥 느낌이 이렇구나만 참고해주시고 나중에 공부하면 정식으로 정리해서 올리겠습니다.
설치
sudo apt update
sudo apt install -y docker.io
docker는 컨테이너라는 개념을 포함하고 있으며, docker를 사용하기 위해 전용 container를 만들어야 합니다. container는 docker 호스트의 포트를 매핑시키는 역할을 하여 특정 포트로 호스트 서버에 접근시 docker로 접근하게 합니다.
// docker container 만들기
sudo docker --name mariadb-container -e MYSQL_ROOT_PASSWORD=<userpw> -P 3306:3306 \
-d mariadb:latest
// 완료시
4293339931af00449bb416ef54b0b2a7057b806eac71baa35ce883b82fd50789
// container 시작
sudo docker start <conrainer-name: mariadb-container>
mariadb전용 컨테이너를 만들었습니다.
// 모든 컨테이너 확인 가능
sudo docker ps -a
// 실행중인 것만 확인
sudo docker ps
docker ps를 통해 container id를 알 수 있습니다. 이는 해당 docker에 직접 접근하는데에 사용됩니다.
MySQL Client
혼동이 있을 것 같아. 현재 구조를 간단하게 정리해 봣습니다.
리눅스 서버에서 docker의 maraidb로 접근할 필요가 있습니다. 이를 위해 mysql client를 다운받아봅시다.
// (리눅스 호스트 서버에서)
// 다운로드
sudo apt update
sudo apt install mysql-client
// check
mysql --version
// 접속
mysql -h 127.0.0.1 -P 3306 -u root -p
기존에 만들어둔 DB를 모두 linux mariadb로 옮기고 데이터도 넣어주면 됩니다.
💡 DDL 명령어는 다음을 사용하세요.
SHOW CREATE TABLE tablenames;
-- DB에서 기존테이블의 속성을 참고하여 DDL명령어를 만들어줍니다.
git clone
linux에서 git을 다운받아주세요.
sudo apt update
sudo apt install git -y
git --version
git clone으로 github의 프로젝트 다운받기
git clone <원격 프로젝트 주소>
Spring 프로젝트 build하기
다운받은 project로 이동 후 아래 명령어 실행
sudo ./gradlew build
💡 안된다면 gradlew 파일이 없거나, 실행 권한이 없는 경우입니다.
보통 실행 권한이 없는 경우가 많을 테니 아래 명령어를 입력하세요
sudo chmod +x gradlew
프로젝트 실행
cd build/libs
java -jar ---SNAPSHOT.jar
이렇게 하면 Spring 프로젝트가 실행되는 것을 볼 수 있습니다.

