docs: Git 기반 배포 필요성 및 carmodoo-agent 환경변수 설명 추가

This commit is contained in:
AutonetSellCar Deploy
2025-12-31 10:55:36 +09:00
parent e661d91c72
commit 81b75f0e2c

View File

@@ -278,8 +278,10 @@ services:
- autonet-production-network - autonet-production-network
carmodoo-agent: carmodoo-agent:
build: ./carmodoo-agent build: ./agent
container_name: carmodoo-agent container_name: carmodoo-agent
volumes:
- ./agent/.env:/app/.env:ro
networks: networks:
- autonet-production-network - autonet-production-network
@@ -408,7 +410,8 @@ docker compose -f docker-compose.production.yml up -d
│ │ ├── requirements.txt # psycopg2-binary 포함 │ │ ├── requirements.txt # psycopg2-binary 포함
│ │ └── app/ │ │ └── app/
│ │ └── config.py # URL 인코딩 적용 │ │ └── config.py # URL 인코딩 적용
│ ├── carmodoo-agent/ │ ├── agent/
│ │ └── .env # Carmodoo 로그인 정보
│ └── docker-compose.production.yml │ └── docker-compose.production.yml
├── releases/ # 롤백용 백업 ├── releases/ # 롤백용 백업
@@ -424,7 +427,7 @@ docker compose -f docker-compose.production.yml up -d
## 8. 환경변수 설정 ## 8. 환경변수 설정
### 운영 서버 backend/.env 전체 ### 운영 서버 backend/.env
```env ```env
# Database (PostgreSQL) # Database (PostgreSQL)
@@ -463,9 +466,105 @@ VERIFICATION_CODE_EXPIRE_MINUTES=10
EMAIL_VERIFICATION_REQUIRED=True 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 연결 오류 ### PostgreSQL 연결 오류
@@ -514,9 +613,35 @@ docker compose -f docker-compose.production.yml build backend --no-cache
NEXT_PUBLIC_API_URL=https://autonetsellcar.com 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