docs: مشکل ۱۴-۱۶ — K8S_SERVER اشتباه, نبود appsettings.Production, nginx image path
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
> آخرین بروزرسانی: February 17, 2026
|
> آخرین بروزرسانی: February 17, 2026
|
||||||
> ۲۲۰ فایل → ۳۰ فایل (تجمیع ۳ فازی + cleanup نهایی)
|
> ۲۲۰ فایل → ۳۰ فایل (تجمیع ۳ فازی + cleanup نهایی)
|
||||||
> آخرین تغییرات: فیکس ZarinPal callback، تخفیف ۱۰۰٪ اجباری، VAT checkout، ExpirePendingOrders، فیکس DeliveryStatus mapping، دیپلوی Production، فیکس CI/CD cross-deploy
|
> آخرین تغییرات: فیکس ZarinPal callback، تخفیف ۱۰۰٪ اجباری، VAT checkout، ExpirePendingOrders، فیکس DeliveryStatus mapping، دیپلوی Production، فیکس CI/CD cross-deploy، ساخت appsettings.Production.json هر ۳ پروژه، فیکس K8S_SERVER، فیکس nginx image path
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -613,4 +613,66 @@ jobs:
|
|||||||
| **Registry** | `194.5.195.53:30080` (local) | همان staging registry |
|
| **Registry** | `194.5.195.53:30080` (local) | همان staging registry |
|
||||||
| **Image Tags** | `:latest` | `:prod` + `:sha` |
|
| **Image Tags** | `:latest` | `:prod` + `:sha` |
|
||||||
| **Branch** | `kub-stage` | `production` |
|
| **Branch** | `kub-stage` | `production` |
|
||||||
| **Domains** | `*.se.kbs1.ir` | `*.kbs1.ir` |
|
| **Domains** | `*.se.kbs1.ir` | `*.kbs1.ir` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🐛 مشکل ۱۴: K8S_SERVER اشتباه در prod-deploy.yml (CMS + BackOffice)
|
||||||
|
|
||||||
|
**تاریخ:** February 17, 2026
|
||||||
|
**علت:** `K8S_SERVER` در `prod-deploy.yml` CMS و BackOffice هنوز `194.5.195.53` (staging) بود بجای `45.149.79.127` (production).
|
||||||
|
**عارضه:** `kubectl set image` به سرور staging ارسال میشد — deployment production آپدیت نمیشد.
|
||||||
|
|
||||||
|
**فایلهای فیکس شده:**
|
||||||
|
- `CMS/.gitea/workflows/prod-deploy.yml` — `K8S_SERVER: 194.5.195.53` → `45.149.79.127`
|
||||||
|
- `BackOffice/.gitea/workflows/prod-deploy.yml` — `K8S_SERVER: 194.5.195.53` → `45.149.79.127`
|
||||||
|
- FrontOffice قبلاً درست بود ✅
|
||||||
|
|
||||||
|
**فیکس اضافی:** هر دو workflow از `kubectl rollout restart` به `kubectl set image` تغییر کردن تا ایمیج SHA-tagged واقعاً set بشه.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🐛 مشکل ۱۵: نبود appsettings.Production.json — URLهای staging روی production
|
||||||
|
|
||||||
|
**تاریخ:** February 17, 2026
|
||||||
|
**علت:** هیچکدوم از ۳ پروژه `appsettings.Production.json` نداشتن. از طرفی `ASPNETCORE_ENVIRONMENT=Production` ست بود → fallback به `appsettings.json` (که URLهای staging داشت).
|
||||||
|
|
||||||
|
**عارضهها:**
|
||||||
|
- CMS: `CmsBaseUrl=cms.se.kbs1.ir` → ZarinPal callback به staging برمیگشت
|
||||||
|
- CMS: `FrontOfficeBaseUrl=foursat.se.kbs1.ir` → redirect بعد از پرداخت به staging میرفت
|
||||||
|
- FrontOffice: `GwUrl=localhost:32846` → gRPC به هیچجا وصل نمیشد
|
||||||
|
- BackOffice: `GwUrl=localhost:32847` → gRPC به هیچجا وصل نمیشد
|
||||||
|
|
||||||
|
**فایلهای ساخته شده:**
|
||||||
|
|
||||||
|
| پروژه | فایل | محتوای کلیدی |
|
||||||
|
|--------|------|-------------|
|
||||||
|
| CMS | `src/CMSMicroservice.WebApi/appsettings.Production.json` | `CmsBaseUrl=cms.kbs1.ir`, `FrontOfficeBaseUrl=kbs1.ir`, `DB=KBS`, `ZarinPal.UseSandbox=false` |
|
||||||
|
| FrontOffice | `src/FrontOffice.Main/appsettings.Production.json` | `GwUrl=cms.kbs1.ir` |
|
||||||
|
| BackOffice | `src/BackOffice/wwwroot/appsettings.Production.json` | `GwUrl=cms.kbs1.ir` |
|
||||||
|
|
||||||
|
> ⚠️ **نکته:** CMS فایل `appsettings.Production.json` در `.gitignore` هست (`**/ appsettings.Production.json`). با `git add -f` ترک شد. بعد از هر تغییر باید دوباره force add بشه.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🐛 مشکل ۱۶: nginx image path اشتباه در BackOffice Dockerfile (production branch)
|
||||||
|
|
||||||
|
**تاریخ:** February 17, 2026
|
||||||
|
**علت:** Dockerfile روی برنچ `production` از `194.5.195.53:32082/library/nginx:alpine` استفاده میکرد که در رجیستری وجود نداشت. روی `kub-stage` قبلاً فیکس شده بود ولی merge به production این خط رو override کرده بود.
|
||||||
|
|
||||||
|
**ارور CI:**
|
||||||
|
```
|
||||||
|
Step 9/14 : FROM 194.5.195.53:32082/library/nginx:alpine AS final
|
||||||
|
manifest for 194.5.195.53:32082/library/nginx:alpine not found: manifest unknown
|
||||||
|
```
|
||||||
|
|
||||||
|
**رفع:**
|
||||||
|
```dockerfile
|
||||||
|
# قبل (اشتباه)
|
||||||
|
FROM 194.5.195.53:32082/library/nginx:alpine AS final
|
||||||
|
|
||||||
|
# بعد (صحیح)
|
||||||
|
FROM 194.5.195.53:32082/nginx:alpine AS final
|
||||||
|
```
|
||||||
|
|
||||||
|
**نکته:** این فیکس مستقیماً روی برنچ `production` انجام و push شد (کامیت `743403e`).
|
||||||
@@ -47,8 +47,11 @@
|
|||||||
# Staging
|
# Staging
|
||||||
Server=mssql-svc,1433;Database=Foursat;User Id=sa;Password=87zH26nbqT;TrustServerCertificate=true
|
Server=mssql-svc,1433;Database=Foursat;User Id=sa;Password=87zH26nbqT;TrustServerCertificate=true
|
||||||
|
|
||||||
# Production (env override)
|
# Production (appsettings.Production.json)
|
||||||
Server=45.149.79.127,31433;Database=KBS;User Id=sa;Password=YourStrong@Passw0rd;TrustServerCertificate=true
|
Server=mssql-svc;Database=KBS;User Id=sa;Password=YourStrong@Passw0rd;TrustServerCertificate=True
|
||||||
|
|
||||||
|
# Production (env override — قدیمی، از بیرون cluster)
|
||||||
|
# Server=45.149.79.127,31433;Database=KBS;User Id=sa;Password=YourStrong@Passw0rd;TrustServerCertificate=true
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
Reference in New Issue
Block a user