- Move Docker files to build/docker/ - Move CI/CD configs to build/ci/ - Move deployment configs to deploy/ (helm, k8s, argocd) - Move config files to config/ - Move scripts to tools/ - Consolidate assets to assets/ (Reflex compatible) - Add data/ directory for local data (gitignored) - Update all path references in Makefile, Dockerfile, CI configs - Add comprehensive README files for build/ and deploy/ - Update project documentation Benefits: - Clear separation of concerns - Cleaner root directory - Better developer experience - Enterprise-grade structure - Improved maintainability
82 lines
2.0 KiB
Markdown
82 lines
2.0 KiB
Markdown
# Build Directory
|
|
|
|
این دایرکتوری شامل همه فایلهای مربوط به **build process** پروژه است.
|
|
|
|
## 📁 ساختار
|
|
|
|
```
|
|
build/
|
|
├── docker/ # Docker configurations
|
|
│ ├── Dockerfile # Main application Dockerfile
|
|
│ ├── Dockerfile.base # Base image reference
|
|
│ ├── docker-compose.yml # Local development
|
|
│ └── .dockerignore
|
|
└── ci/ # CI/CD configurations
|
|
└── woodpecker.yml # Woodpecker CI pipeline
|
|
```
|
|
|
|
## 🐳 Docker
|
|
|
|
### Dockerfile
|
|
Multi-stage Dockerfile برای بهینهسازی حجم image و امنیت:
|
|
- **Stage 1 (Builder)**: Build و compile
|
|
- **Stage 2 (Runtime)**: Image نهایی بدون build tools
|
|
|
|
**Build:**
|
|
```bash
|
|
make docker-build
|
|
# یا
|
|
docker build -f build/docker/Dockerfile -t peikarband/landing:latest .
|
|
```
|
|
|
|
### Dockerfile.base
|
|
فایل مرجع برای base image که در repo جداگانه build میشود:
|
|
- Repo: `peikarband/base`
|
|
- Registry: `hub.peikarband.ir/peikarband/base:latest`
|
|
|
|
### docker-compose.yml
|
|
برای development محلی:
|
|
```bash
|
|
make docker-up
|
|
# یا
|
|
docker-compose -f build/docker/docker-compose.yml up -d
|
|
```
|
|
|
|
## 🔄 CI/CD
|
|
|
|
### woodpecker.yml
|
|
Woodpecker CI pipeline configuration:
|
|
- Build Docker image
|
|
- Push به Harbor registry
|
|
- Tag with commit SHA
|
|
- Cache optimization
|
|
|
|
**تنظیمات مورد نیاز:**
|
|
- `HARBOR_USERNAME`: Harbor registry username
|
|
- `HARBOR_PASSWORD`: Harbor registry password
|
|
|
|
## 🎯 Best Practices
|
|
|
|
1. **Docker Images**
|
|
- Multi-stage builds
|
|
- Minimal runtime dependencies
|
|
- Non-root user
|
|
- Health checks
|
|
|
|
2. **CI/CD**
|
|
- Cache layers
|
|
- Automated testing
|
|
- Semantic versioning
|
|
- Registry push on main branch only
|
|
|
|
3. **Security**
|
|
- Scan images for vulnerabilities
|
|
- Sign images
|
|
- Use specific versions (no `:latest` in production)
|
|
|
|
## 📚 مستندات بیشتر
|
|
|
|
- [Deployment Guide](../docs/deployment/kubernetes.md)
|
|
- [Production Deployment](../docs/deployment/PRODUCTION_DEPLOYMENT.md)
|
|
|