Files
peikarband/docker
Ehsan.Asadi a5324456ec
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
fix(docker): fix Reflex module path and npm registry | ApprovalToken: 1767140126
- Set PYTHONPATH to /build for Reflex to find app module
- Update app_name in rxconfig.py to match actual module path
- Configure npm to use registry.npmjs.org instead of mirror
- Add fallback from npm ci to npm install on failure
- Fixes ModuleNotFoundError: Module peikarband.peikarband not found
2025-12-31 03:45:27 +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)

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