-
Notifications
You must be signed in to change notification settings - Fork 0
Deployment Plan
BcKmini edited this page Jul 28, 2026
·
1 revision
이 문서는 client/server/ai 저장소에 실제로 반영되기 전 단계의 계획입니다. 각 저장소는 소유 팀원과 협의 후 별도로 반영합니다. infra 쪽(이 위키·infra 저장소)은 이 계획을 관리하는 용도로만 사용합니다.
| 저장소 | Dockerfile | CI/CD 워크플로우 |
|---|---|---|
client |
임시 버전이 PR로 대기 중 (#99, 미머지) | 없음 |
server |
임시 버전 머지됨 (#31) — "TEMP" 표시된 상태, 정식화 필요 | 있음 (ci.yml, 테스트만 — 배포는 없음) |
ai |
팀원이 이미 추가함 (python:3.12-slim 기반) |
없음 |
VITE_API_BASE_URL을 빌드 타임에 상대경로(/api/v1)로 기본 설정해서, 배포 IP/도메인이 바뀌어도 이미지를 다시 안 만들어도 되게 개선 예정.
ARG VITE_API_BASE_URL=/api/v1
ENV VITE_API_BASE_URL=$VITE_API_BASE_URL
RUN npm run buildmain에 push되면 이미지를 빌드해 GHCR에 올리고, 클러스터에 반영하는 워크플로우 초안. 실제로는 각 저장소에 맞게 이미지 이름/컨테이너 이름만 바꿔서 넣으면 됨.
name: deploy
on:
push:
branches: [main]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: docker/build-push-action@v6
with:
context: .
push: true
tags: |
ghcr.io/fowoco/<저장소명>:latest
ghcr.io/fowoco/<저장소명>:${{ github.sha }}
- name: Set up kubectl
run: |
mkdir -p ~/.kube
echo "${{ secrets.KUBE_CONFIG }}" | base64 -d > ~/.kube/config
- name: Rollout
run: |
kubectl -n fowoco set image deployment/<컨테이너명> \
<컨테이너명>=ghcr.io/fowoco/<저장소명>:${{ github.sha }}| 이름 | 용도 | 비고 |
|---|---|---|
KUBE_CONFIG |
클러스터 접근용 kubeconfig(base64) | AWS EC2 k3s 클러스터의 kubeconfig — 아직 org secret으로 등록 안 됨 |
GITHUB_TOKEN |
GHCR 푸시 | 자동 제공, 별도 등록 불필요 |
GHCR 패키지는 최초 푸시 후 Public으로 전환하면 클러스터에서 imagePullSecrets 없이 바로 이미지를 받아올 수 있음 (권장).
- 팀 리뷰 후 각 저장소에 위 워크플로우 추가
-
KUBE_CONFIGorg secret 등록 -
client는 Dockerfile 빌드 인자 반영 (PR #99에 추가 커밋 또는 신규 PR) - push 한 번으로 자동 빌드·배포 확인