Files
peikarband/build
Ehsan.Asadi 6820f0ee4f refactor: reorganize project structure for better maintainability
- 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
2025-12-30 21:20:32 +03:30
..

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:

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 محلی:

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)

📚 مستندات بیشتر