Dev 수동 배포 가이드
Jenkins 파이프라인이 작동하지 않거나 긴급하게 특정 모듈만 배포해야 할 때 사용합니다.
사전 준비
# K8s dev 클러스터 접근 확인
kubectl get nodes
kubectl get pods -n dev
# Harbor 로그인
docker login scr.softcamp.co.kr
dev-deploy.sh 스크립트
# 위치
scripts/dev-deploy.sh
# 사용법
./scripts/dev-deploy.sh [api|worker|frontend] [--skip-build]
| 옵션 | 설명 |
|---|---|
api | API 서비스 빌드 + 배포 |
worker | Worker 서비스 빌드 + 배포 |
frontend | Frontend 빌드 + 배포 |
--skip-build | Gradle/Docker 빌드 생략, 기존 이미지로 K8s만 재배포 |
사용 예시
# API 전체 빌드 + 배포
./scripts/dev-deploy.sh api
# Worker 이미지 재빌드 없이 K8s rollout만
./scripts/dev-deploy.sh worker --skip-build
# Frontend 배포
./scripts/dev-deploy.sh frontend
모듈별 수동 절차
API 수동 배포
# 1. Gradle 빌드
cd backend
./gradlew :infolineage-api:bootJar -x test --build-cache \
-Dorg.gradle.jvmargs="--enable-preview -Xmx1g"
cd ..
# 2. Docker 빌드 & 푸시
docker build \
-f backend/infolineage-api/Dockerfile \
-t scr.softcamp.co.kr/infolineage/platform-api:latest \
backend/
docker push scr.softcamp.co.kr/infolineage/platform-api:latest
# 3. K8s 배포
kubectl apply -f infra/k8s/dev/configmap.yaml -n dev
kubectl apply -f infra/k8s/dev/secret.yaml -n dev
kubectl apply -f infra/k8s/dev/api-service.yaml -n dev
kubectl apply -f infra/k8s/dev/api-deployment.yaml -n dev
kubectl rollout restart deployment/infolineage-platform-api -n dev
kubectl rollout status deployment/infolineage-platform-api -n dev --timeout=120s
Worker 수동 배포
cd backend
./gradlew :infolineage-worker:bootJar -x test --build-cache \
-Dorg.gradle.jvmargs="--enable-preview -Xmx1g"
cd ..
docker build \
-f backend/infolineage-worker/Dockerfile \
-t scr.softcamp.co.kr/infolineage/platform-worker:latest \
backend/
docker push scr.softcamp.co.kr/infolineage/platform-worker:latest
kubectl apply -f infra/k8s/dev/configmap.yaml -n dev
kubectl apply -f infra/k8s/dev/secret.yaml -n dev
kubectl apply -f infra/k8s/dev/worker-service.yaml -n dev
kubectl apply -f infra/k8s/dev/worker-deployment.yaml -n dev
kubectl rollout restart deployment/infolineage-platform-worker -n dev
kubectl rollout status deployment/infolineage-platform-worker -n dev --timeout=120s
Frontend 수동 배포
docker build \
-f frontend/Dockerfile \
--build-arg VITE_USE_MOCKS=false \
--build-arg VITE_API_BASE_URL=/platform/api \
--build-arg VITE_AUTH_DISABLED=false \
--build-arg VITE_ENABLE_MOCK_FALLBACK=false \
--build-arg VITE_SHIELD_ID_BASE_URL=https://devlogin.softcamp.co.kr \
--build-arg VITE_CLIENT_NAME=InfoLineage \
-t scr.softcamp.co.kr/infolineage/platform-frontend:latest \
frontend/
docker push scr.softcamp.co.kr/infolineage/platform-frontend:latest
kubectl apply -f infra/k8s/dev/frontend-service.yaml -n dev
kubectl apply -f infra/k8s/dev/frontend-deployment.yaml -n dev
kubectl rollout restart deployment/infolineage-platform-frontend -n dev
kubectl rollout status deployment/infolineage-platform-frontend -n dev --timeout=60s