# 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)