Frontend Config Templates
.env.production 의 환경별 양식. Jenkins Secret File 로 업로드되어 빌드 시점에 주입됩니다.
디렉토리 구조
config-templates/
├── dev/ (CTL-Window-Server / dev.antooza.com)
│ └── .env.production.template
└── prod/ (PROD-Window-Server / antooza.com)
└── .env.production.template
Secret File 등록
Manage Jenkins → Credentials → (global) → Add Credentials → Kind: Secret file:
| 환경 |
credentialsId |
사용 파일 |
Jenkinsfile |
| dev |
DEV-ANTOOZA-FRONTEND-ENV |
dev/.env.production.template 채워서 |
Frontend/Jenkinsfile |
| prod |
PROD-ANTOOZA-FRONTEND-ENV |
prod/.env.production.template 채워서 |
Frontend/Jenkinsfile.prod |
빌드 시 흐름
withCredentials([file(credentialsId: '...', variable: 'CFG')])
copy /Y "%CFG%" .env.production
npm run build — NEXT_PUBLIC_* 는 빌드 시 클라이언트 번들에 inline
- Deploy 단계에서
.env.production 을 배포 경로에도 복사 — 서버 사이드 (API_URL, SIGNALR_CHAT_URL 등) 가 런타임에 로드됨
- dev :
F:\IIS\ANTOOZA\Front\
- prod:
C:\workspace\IIS\Front\
dev → prod 차이 (참고)
| 키 |
dev |
prod |
NEXT_PUBLIC_SITE_URL |
https://dev.antooza.com |
https://antooza.com |
NEXT_PUBLIC_API_URL / API_URL |
https://dev-api.antooza.com |
https://api.antooza.com |
NEXT_PUBLIC_RESOURCE_URL |
https://dev-resource.antooza.com |
https://resource.antooza.com |
NEXT_PUBLIC_EMBED_DOMAIN |
dev.antooza.com |
antooza.com |
SIGNALR_CHAT_URL / SIGNALR_APP_URL |
https://dev-api.antooza.com/hubs/{chat,app} |
https://api.antooza.com/hubs/{chat,app} |
보안 노트
- 실제
.env.production / .env.development 는 .gitignore 의 .env* 룰로 무시 (커밋 금지)
- Secret File 업로드 후 Jenkins UI에서 다운로드 불가, 빌드 로그에 자동 마스킹