오라클 클라우드(OCI) 우분투에 Spring Boot 배포 및 systemd 서비스 등록 방법

📖 개요

오라클 클라우드(OCI) 우분투 서버에 GitHub의 Spring Boot 프로젝트를 배포하고,
systemd를 통해 서버 재부팅 시 자동 실행되도록 설정하는 방법을 정리합니다.


1. Java 및 Gradle 환경 준비

Spring Boot 3.x 기준으로 Java 17 이상이 필요합니다.

sudo apt update
sudo apt install -y openjdk-17-jdk
java -version

Gradle은 기본 패키지가 오래되어 직접 설치하는 것이 좋습니다.

sudo apt remove -y gradlecd /tmp
wget https://services.gradle.org/distributions/gradle-8.7-bin.zip
sudo apt install -y unzip
sudo mkdir -p /opt/gradle
sudo unzip -o gradle-8.7-bin.zip -d /opt/gradleecho 'export GRADLE_HOME=/opt/gradle/gradle-8.7' >> ~/.bashrc
echo 'export PATH=$GRADLE_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrcgradle -v

2. GitHub 소스 다운로드

git clone https://github.com/계정/프로젝트.git
cd 프로젝트

3. Gradle 빌드 (메모리 문제 대응 포함)

gradle --stop
gradle clean build -x test --no-daemon

빌드 성공 시:

ls build/libs

예:

adm-0.0.1-SNAPSHOT.jar
adm-0.0.1-SNAPSHOT-plain.jar

👉 실행은 plain 아닌 일반 jar 사용


4. Spring Boot 실행

nohup java -jar build/libs/adm-0.0.1-SNAPSHOT.jar > app.log 2>&1 &

로그 확인:

tail -f app.log

5. 업로드 디렉토리 생성 및 권한 설정

sudo mkdir -p /home/ubuntu/****/upload
sudo chown -R ubuntu:ubuntu /home/ubuntu/****
chmod 755 /home/ubuntu/****/upload

Spring 설정:

file:
upload-dir: /home/ubuntu/****/upload

6. systemd 서비스 등록 (자동 실행)

sudo nano /etc/systemd/system/adm.service

내용:

[Unit]
Description=Spring Boot ADM App
After=network.target[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/adm
Environment="SPRING_PROFILES_ACTIVE=dev"
ExecStart=/usr/bin/java -jar /home/ubuntu/adm/build/libs/adm-0.0.1-SNAPSHOT.jar
SuccessExitStatus=143
Restart=always
RestartSec=5[Install]
WantedBy=multi-user.target

저장:

Ctrl + O → Enter → Ctrl + X

7. 서비스 실행 및 관리

sudo systemctl daemon-reload
sudo systemctl enable adm
sudo systemctl start adm
sudo systemctl status adm

8. 재기동(Restart) 방법

sudo systemctl restart adm

상태 확인:

sudo systemctl status adm

로그 확인:

journalctl -u adm -f

9. 배포 업데이트 방법

cd ~/adm
git pull
gradle --stop
gradle clean build -x test --no-daemon
sudo systemctl restart adm

🔥 핵심 요약

  • Java 17 + Gradle 8.x 필요
  • Spring Boot jar 실행은 plain 제외
  • 업로드 디렉토리는 반드시 쓰기 권한 설정
  • systemd로 자동 실행 구성
  • 재배포 시 restart만 하면 끝

관련 글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다