docs: Git 기반 배포 필요성 및 carmodoo-agent 환경변수 설명 추가
This commit is contained in:
@@ -278,8 +278,10 @@ services:
|
||||
- autonet-production-network
|
||||
|
||||
carmodoo-agent:
|
||||
build: ./carmodoo-agent
|
||||
build: ./agent
|
||||
container_name: carmodoo-agent
|
||||
volumes:
|
||||
- ./agent/.env:/app/.env:ro
|
||||
networks:
|
||||
- autonet-production-network
|
||||
|
||||
@@ -408,7 +410,8 @@ docker compose -f docker-compose.production.yml up -d
|
||||
│ │ ├── requirements.txt # psycopg2-binary 포함
|
||||
│ │ └── app/
|
||||
│ │ └── config.py # URL 인코딩 적용
|
||||
│ ├── carmodoo-agent/
|
||||
│ ├── agent/
|
||||
│ │ └── .env # Carmodoo 로그인 정보
|
||||
│ └── docker-compose.production.yml
|
||||
│
|
||||
├── releases/ # 롤백용 백업
|
||||
@@ -424,7 +427,7 @@ docker compose -f docker-compose.production.yml up -d
|
||||
|
||||
## 8. 환경변수 설정
|
||||
|
||||
### 운영 서버 backend/.env 전체
|
||||
### 운영 서버 backend/.env
|
||||
|
||||
```env
|
||||
# Database (PostgreSQL)
|
||||
@@ -463,9 +466,105 @@ VERIFICATION_CODE_EXPIRE_MINUTES=10
|
||||
EMAIL_VERIFICATION_REQUIRED=True
|
||||
```
|
||||
|
||||
### 운영 서버 agent/.env
|
||||
|
||||
```env
|
||||
# Carmodoo 딜러 포탈 로그인 정보
|
||||
CARMODOO_USER_ID=01033315258
|
||||
CARMODOO_PASSWORD=alskfl@1122
|
||||
|
||||
# Backend API 연결 (Docker 네트워크 내부)
|
||||
API_SERVER_URL=http://autonet-backend:8000/api
|
||||
```
|
||||
|
||||
> ⚠️ **중요**: carmodoo-agent는 이 환경변수가 없으면 로그인 실패로 계속 재시작됩니다.
|
||||
|
||||
---
|
||||
|
||||
## 9. 문제 해결
|
||||
## 9. Git 기반 배포가 필요한 이유
|
||||
|
||||
### 9.1 문제 상황 (Git 미사용 시)
|
||||
|
||||
```
|
||||
[서버4 - 로컬 개발] [서버2 - 운영 서버]
|
||||
소스코드 A 소스코드 A
|
||||
│ │
|
||||
│ 직접 수정 → 소스코드 B (예: 번역 수정)
|
||||
│ │
|
||||
└────── docker build ───────────┘
|
||||
│
|
||||
▼
|
||||
소스코드 A로 덮어씀
|
||||
(B 변경사항 사라짐!)
|
||||
```
|
||||
|
||||
**원인**:
|
||||
- 서버2에서 직접 코드를 수정함
|
||||
- 서버4에서 `docker build`를 하면 서버4의 소스코드로 컨테이너가 다시 빌드됨
|
||||
- 서버2에서 수정한 내용이 서버4에는 없으므로 → **변경사항이 사라짐**
|
||||
|
||||
### 9.2 해결 방법 (Git 기반 배포)
|
||||
|
||||
```
|
||||
[서버4 - 로컬 개발] [서버2 - 운영 서버]
|
||||
소스코드 수정
|
||||
│
|
||||
git commit
|
||||
│
|
||||
git push staging ────────────────→ Git Bare Repository
|
||||
│
|
||||
post-receive hook (자동)
|
||||
│
|
||||
▼
|
||||
소스코드 복사 + docker build
|
||||
│
|
||||
▼
|
||||
스테이징 컨테이너 실행
|
||||
│
|
||||
검증 후 deploy.sh promote
|
||||
│
|
||||
▼
|
||||
운영 컨테이너 실행
|
||||
```
|
||||
|
||||
### 9.3 핵심 원칙
|
||||
|
||||
| 이전 (문제) | 현재 (해결) |
|
||||
|------------|------------|
|
||||
| 서버2에서 직접 수정 | **서버4에서만 수정** |
|
||||
| 수정 후 바로 docker build | git commit → git push |
|
||||
| 변경 이력 없음 | Git으로 버전 관리 |
|
||||
| 롤백 불가 | `deploy.sh rollback`으로 롤백 가능 |
|
||||
|
||||
### 9.4 올바른 배포 워크플로우
|
||||
|
||||
```bash
|
||||
# 1. 서버4에서 코드 수정 (로컬 개발)
|
||||
code frontend/src/app/page.tsx
|
||||
|
||||
# 2. 로컬 테스트
|
||||
npm run dev
|
||||
|
||||
# 3. Git 커밋
|
||||
git add .
|
||||
git commit -m "fix: 번역 수정"
|
||||
|
||||
# 4. 스테이징 배포 (자동 - post-receive hook)
|
||||
git push staging main
|
||||
|
||||
# 5. 스테이징 검증
|
||||
# http://192.168.0.202:3001 (frontend)
|
||||
# http://192.168.0.202:8001/docs (backend)
|
||||
|
||||
# 6. 운영 승격
|
||||
ssh damon@192.168.0.202 "/opt/autonet/scripts/deploy.sh promote"
|
||||
```
|
||||
|
||||
> ⚠️ **중요**: 서버2에서 직접 코드를 수정하지 마세요! 모든 변경은 서버4에서 Git을 통해 배포해야 합니다.
|
||||
|
||||
---
|
||||
|
||||
## 10. 문제 해결
|
||||
|
||||
### PostgreSQL 연결 오류
|
||||
|
||||
@@ -514,9 +613,35 @@ docker compose -f docker-compose.production.yml build backend --no-cache
|
||||
NEXT_PUBLIC_API_URL=https://autonetsellcar.com
|
||||
```
|
||||
|
||||
### carmodoo-agent 계속 재시작
|
||||
|
||||
```bash
|
||||
# 에러 확인
|
||||
docker logs carmodoo-agent --tail 20
|
||||
|
||||
# 에러: User ID and password are required
|
||||
# 원인: agent/.env 파일 없음 또는 환경변수 미설정
|
||||
|
||||
# 해결:
|
||||
# 1. .env 파일 생성
|
||||
cat > /opt/autonet/production/agent/.env << 'EOF'
|
||||
CARMODOO_USER_ID=01033315258
|
||||
CARMODOO_PASSWORD=alskfl@1122
|
||||
API_SERVER_URL=http://autonet-backend:8000/api
|
||||
EOF
|
||||
|
||||
# 2. 컨테이너 재생성 (.env 마운트 적용)
|
||||
docker stop carmodoo-agent && docker rm carmodoo-agent
|
||||
docker run -d --name carmodoo-agent \
|
||||
--restart unless-stopped \
|
||||
--network autonet-production-network \
|
||||
-v /opt/autonet/production/agent/.env:/app/.env:ro \
|
||||
production-carmodoo-agent
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. 빠른 참조 명령어
|
||||
## 11. 빠른 참조 명령어
|
||||
|
||||
```
|
||||
╔═══════════════════════════════════════════════════════════════════════════════╗
|
||||
@@ -549,7 +674,7 @@ NEXT_PUBLIC_API_URL=https://autonetsellcar.com
|
||||
|
||||
---
|
||||
|
||||
## 11. 체크리스트
|
||||
## 12. 체크리스트
|
||||
|
||||
### 최초 서버 설정
|
||||
|
||||
@@ -578,4 +703,4 @@ NEXT_PUBLIC_API_URL=https://autonetsellcar.com
|
||||
|
||||
---
|
||||
|
||||
**최종 업데이트**: 2024-12-30
|
||||
**최종 업데이트**: 2024-12-31
|
||||
|
||||
Reference in New Issue
Block a user