Files
peikarband/docker
Ehsan.Asadi 3d241f5269
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
[FIX] حل مشکل ModuleNotFoundError peikarband.peikarband در Docker (fix) | ApprovalToken: accepted
- ایجاد peikarband/__init__.py برای فعال‌سازی package
- ایجاد peikarband/peikarband.py برای export کردن app
- تغییر Dockerfile برای حفظ ساختار peikarband package در /build/peikarband/ و /app/peikarband/
- به‌روزرسانی مسیرهای reflex commands و REFLEX_DIR
- این تغییرات باعث می‌شود Reflex بتواند peikarband.peikarband را پیدا کند
2025-12-31 04:05:24 +03:30
..
2025-12-30 22:17:13 +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)

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