- site/index.html: Russian literature crossword page - Dockerfile + nginx conf serving on 8080 with /healthz - k8s Deployment + NodePort Service (31380) in plpark-int-ns - Jenkinsfile: build/push to gitea registry, apply to rancher Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
46 lines
1.6 KiB
Markdown
46 lines
1.6 KiB
Markdown
# crossword
|
|
|
|
러시아 문학 가로세로 낱말풀이 — 정적 단일 페이지 사이트.
|
|
|
|
- 공개 주소: https://crossword.plpark.ectech.co.kr
|
|
- 내부 주소: http://192.168.0.216:31380 (NodePort)
|
|
|
|
## 구성
|
|
|
|
| 경로 | 설명 |
|
|
|---|---|
|
|
| `site/index.html` | 게임 본체 (원본: `프로젝트/02_crossword/russian-lit-crossword.html`) |
|
|
| `nginx/default.conf` | nginx 설정 (8080 리슨, `/healthz` 헬스체크) |
|
|
| `Dockerfile` | nginx:1.27-alpine 정적 서빙 이미지 |
|
|
| `k8s/deployment.yaml` | Deployment + NodePort Service (31380) |
|
|
| `Jenkinsfile` | Checkout → 이미지 빌드/푸시 → kubectl apply |
|
|
|
|
Spring Boot 등 런타임은 없음. HTML/CSS/JS 만으로 동작하는 완전 정적 페이지라
|
|
nginx 로 파일만 내려주면 끝.
|
|
|
|
## 배포
|
|
|
|
Jenkins 잡(`crossword`)을 돌리면 아래가 순서대로 진행된다.
|
|
|
|
1. gitea `plpark/crossword` main 브랜치 체크아웃
|
|
2. `gitea.plpark.ectech.co.kr/plpark/crossword:<BUILD_NUMBER>` 빌드 & 푸시
|
|
3. `plpark-int-ns` 네임스페이스에 apply, rollout 대기
|
|
|
|
Jenkins credentials 는 기존 loggen/pilot1 과 동일하게
|
|
`gitea-registry`(usernamePassword), `rancher-kubeconfig`(file) 를 사용한다.
|
|
|
|
## 프록시 (NPM)
|
|
|
|
`https://npm.ectech.co.kr` 에서 Proxy Host 추가:
|
|
|
|
- Domain Names: `crossword.plpark.ectech.co.kr`
|
|
- Scheme: `http`
|
|
- Forward Hostname / IP: `192.168.0.216`
|
|
- Forward Port: `31380`
|
|
- Block Common Exploits / Websockets Support: ON
|
|
- SSL: Let's Encrypt 발급 + Force SSL + HTTP/2
|
|
|
|
## 콘텐츠 수정
|
|
|
|
`site/index.html` 만 고치고 커밋 → Jenkins 빌드. 그 외 변경 필요 없음.
|