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 | フロントエンド ビルド + デプロイ |
--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
デプロイ検証
# Pod 상태 확인
kubectl get pods -n dev -l app=infolineage-platform-api
kubectl get pods -n dev -l app=infolineage-platform-worker
kubectl get pods -n dev -l app=infolineage-platform-frontend
# 로그 확인
kubectl logs -n dev -l app=infolineage-platform-api --tail=50 -f
kubectl logs -n dev -l app=infolineage-platform-worker --tail=50 -f
# API health 확인
kubectl exec -n dev deploy/infolineage-platform-api -- \
curl -s http://localhost:8080/actuator/health | jq .
# 외부 접근 확인
curl -s https://devinfolineage.softcamp.co.kr/platform/actuator/health
デプロイ失敗時の迅速なロールバック
# 이전 ReplicaSet으로 즉시 롤백
kubectl rollout undo deployment/infolineage-platform-api -n dev
kubectl rollout undo deployment/infolineage-platform-worker -n dev
kubectl rollout undo deployment/infolineage-platform-frontend -n dev
# 롤백 상태 확인
kubectl rollout status deployment/infolineage-platform-api -n dev
注意:
:latestタグを使用するのでrollout undoは直前のDeploymentスペックに戻ります。イメージ自体を戻すには、以前のイメージを再ビルド/プッシュする必要があります。