# ═══════════════════════════════════════════════════════════════════════════
# Kyros Server - Docker Build Context Ignore Rules
# ═══════════════════════════════════════════════════════════════════════════
#
# Purpose: Exclude unnecessary files from Docker build context
# Benefits:
# - Faster Docker builds (smaller context)
# - Smaller image sizes
# - Better security (no secrets in images)
# - Reduced network transfer during builds
#
# ═══════════════════════════════════════════════════════════════════════════

# ───────────────────────────────────────────────────────────────────────────
# Version Control
# ───────────────────────────────────────────────────────────────────────────
.git
.gitignore
.gitattributes
.github

# ───────────────────────────────────────────────────────────────────────────
# Python Artifacts
# ───────────────────────────────────────────────────────────────────────────
__pycache__
*.py[cod]
*$py.class
*.so
.Python
*.egg
*.egg-info
dist
build
eggs
.eggs
lib
lib64
parts
sdist
var
wheels
pip-wheel-metadata
share/python-wheels
*.manifest
*.spec

# ───────────────────────────────────────────────────────────────────────────
# Virtual Environments
# ───────────────────────────────────────────────────────────────────────────
venv
env
ENV
env.bak
venv.bak
.venv

# ───────────────────────────────────────────────────────────────────────────
# Testing & Coverage
# ───────────────────────────────────────────────────────────────────────────
.pytest_cache
.coverage
.coverage.*
htmlcov
.tox
.nox
coverage.xml
*.cover
.hypothesis
.pytest_cache
nosetests.xml
test-results

# ───────────────────────────────────────────────────────────────────────────
# Type Checking & Linting
# ───────────────────────────────────────────────────────────────────────────
.mypy_cache
.dmypy.json
dmypy.json
.ruff_cache
.pytype

# ───────────────────────────────────────────────────────────────────────────
# Environment & Secrets (CRITICAL - Never include in images)
# ───────────────────────────────────────────────────────────────────────────
.env
.env.*
!.env.example
.env.local
.env.development
.env.test
.env.production
*.pem
*.key
*.crt
*.p12
secrets.yaml
secrets.json

# ───────────────────────────────────────────────────────────────────────────
# IDE & Editor Files
# ───────────────────────────────────────────────────────────────────────────
.vscode
.idea
*.swp
*.swo
*~
.DS_Store
*.sublime-project
*.sublime-workspace
.project
.pydevproject
.settings

# ───────────────────────────────────────────────────────────────────────────
# Documentation
# ───────────────────────────────────────────────────────────────────────────
*.md
!README.md
docs
*.rst
*.txt
!requirements.txt
!.pip-audit-requirements.txt

# ───────────────────────────────────────────────────────────────────────────
# Logs
# ───────────────────────────────────────────────────────────────────────────
*.log
logs
*.log.*
log

# ───────────────────────────────────────────────────────────────────────────
# Database Files (Local Development)
# ───────────────────────────────────────────────────────────────────────────
*.db
*.sqlite
*.sqlite3
db.sqlite3
*.db-journal

# ───────────────────────────────────────────────────────────────────────────
# Temporary Files
# ───────────────────────────────────────────────────────────────────────────
*.tmp
*.temp
*.bak
*.swp
*.swo
.cache
tmp
temp

# ───────────────────────────────────────────────────────────────────────────
# OS Files
# ───────────────────────────────────────────────────────────────────────────
.DS_Store
Thumbs.db
desktop.ini
$RECYCLE.BIN

# ───────────────────────────────────────────────────────────────────────────
# CI/CD
# ───────────────────────────────────────────────────────────────────────────
.github
.gitlab-ci.yml
.travis.yml
.circleci
azure-pipelines.yml
Jenkinsfile

# ───────────────────────────────────────────────────────────────────────────
# Docker
# ───────────────────────────────────────────────────────────────────────────
docker-compose*.yml
!docker-compose.yml
Dockerfile*
!Dockerfile
.dockerignore

# ───────────────────────────────────────────────────────────────────────────
# Analysis Reports (Generated Files)
# ───────────────────────────────────────────────────────────────────────────
*_ANALYSIS_REPORT.md

# ───────────────────────────────────────────────────────────────────────────
# Benchmarks & Performance Data
# ───────────────────────────────────────────────────────────────────────────
benchmarks
benchmark_results
*.benchmark
locust*.log

# ───────────────────────────────────────────────────────────────────────────
# Machine Learning Models (Downloaded at Runtime)
# ───────────────────────────────────────────────────────────────────────────
models
*.model
*.pkl
*.h5
*.onnx
.cache/huggingface

# ───────────────────────────────────────────────────────────────────────────
# Alembic (Keep Migration Files, Exclude Generated)
# ───────────────────────────────────────────────────────────────────────────
# Keep: alembic/, alembic.ini, alembic/versions/*.py
# Exclude: Nothing specific - migrations are needed

# ───────────────────────────────────────────────────────────────────────────
# Makefile & Scripts (Not Needed in Container)
# ───────────────────────────────────────────────────────────────────────────
Makefile
*.sh
!entrypoint.sh
!startup.sh

# ═══════════════════════════════════════════════════════════════════════════
# End of .dockerignore
# ═══════════════════════════════════════════════════════════════════════════
