# syntax=docker/dockerfile:1
#----------------------------------------------------------------------
# Docker Build Context Optimization
#
# This .dockerignore file excludes unnecessary files from the Docker
# build context to improve build performance and security.
#----------------------------------------------------------------------

#----------------------------------------------------------------------
# 1. Development and source directories (not needed in production)
#----------------------------------------------------------------------
agent_runtimes/
charts/
deployment/
docs/
deployment/k8s/
mcp-servers/
tests/
test/
attic/
*.md
.benchmarks/
.claude

# Development environment directories
.devcontainer/
.github/
.vscode/
.idea/

#----------------------------------------------------------------------
# 2. Version control
#----------------------------------------------------------------------
.git/
.gitignore
.gitattributes
.gitmodules

#----------------------------------------------------------------------
# 3. Python build artifacts and caches
#----------------------------------------------------------------------
# Byte-compiled files
__pycache__/
*.py[cod]
*.pyc
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
.wily/

# PyInstaller
*.manifest
*.spec

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/
.pytype/

# Cython debug symbols
cython_debug/

#----------------------------------------------------------------------
# 4. Virtual environments
#----------------------------------------------------------------------
.env
.venv
.venv/
**/.venv
**/.venv/
env/
venv/
ENV/
env.bak/
venv.bak/
.python37/
.python39/
.python-version

# PDM
pdm.lock
.pdm.toml
.pdm-python

# uv
uv.lock
**/uv.lock

#----------------------------------------------------------------------
# 5. Package managers and dependencies
#----------------------------------------------------------------------
# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.npm
.yarn

# pip
pip-log.txt
pip-delete-this-directory.txt

#----------------------------------------------------------------------
# 6. Docker and container files (avoid recursive copies)
#----------------------------------------------------------------------
Dockerfile
Dockerfile.*
Containerfile
Containerfile.*
docker-compose.yml
docker-compose.*.yml
podman-compose*.yaml
.dockerignore

#----------------------------------------------------------------------
# 7. IDE and editor files
#----------------------------------------------------------------------
# JetBrains
.idea/
*.iml
*.iws
*.ipr

# VSCode
.vscode/
*.code-workspace

# Vim
*.swp
*.swo
*~

# Emacs
*~
\#*\#
.\#*

# macOS
.DS_Store
.AppleDouble
.LSOverride

#----------------------------------------------------------------------
# 8. Build tools and CI/CD configurations
#----------------------------------------------------------------------
# Testing configurations
.coveragerc
.pylintrc
pytest.ini
tox.ini
.pytest.ini

# Linting and formatting
.hadolint.yaml
.pre-commit-config.yaml
.pycodestyle
.pyre_configuration
.pyspelling.yaml
.ruff.toml
.shellcheckrc

# Build configurations
Makefile
setup.cfg
pyproject.toml.bak
MANIFEST.in

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

# Code quality
sonar-code.properties
sonar-project.properties
.scannerwork/
whitesource.config
.whitesource

# Other tools
.bumpversion.cfg
.editorconfig
mypy.ini

#----------------------------------------------------------------------
# 9. Application runtime files (should not be in image)
#----------------------------------------------------------------------
# Databases
*.db
*.sqlite
*.sqlite3
mcp.db
db.sqlite3
# Explicit database file patterns in application directories
mcpgateway/*.db
mcpgateway/*.sqlite
mcpgateway/*.sqlite3
mcpgateway/mcp.db
mcpgateway/test_migration.db

# Logs
*.log
logs/
log/
reports/
coverage/
artifacts/
.tmp/
tmp/

# Certificates and secrets
certs/
jwt/
*.pem
*.key
*.crt
*.csr
.env
.env.*

# Generated files
public/
media/

# Exclude generated CSS (built during Docker build)
mcpgateway/static/css/tailwind.min.css

# Exclude vendor directory (downloaded during Docker build via download-cdn-assets.sh)
# This ensures fresh CDN assets are downloaded for each build
mcpgateway/static/vendor/

# Exclude generated/temporary files in static/
mcpgateway/static/**/*.map
mcpgateway/static/**/*.tmp

# Exclude test harnesses (should not ship in container images)
mcpgateway/static/iframe-test-harness.html

# Application instances
instance/
local_settings.py

#----------------------------------------------------------------------
# 10. Framework-specific files
#----------------------------------------------------------------------
# Django
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
media/

# Flask
instance/
.webassets-cache

# Scrapy
.scrapy

# Sphinx documentation
docs/_build/
docs/build/

# PyBuilder
target/
**/target/
**/target/**

# Jupyter Notebook
.ipynb_checkpoints
*.ipynb

# IPython
profile_default/
ipython_config.py

# celery
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

#----------------------------------------------------------------------
# 11. Backup and temporary files
#----------------------------------------------------------------------
*.bak
*.backup
*.tmp
*.temp
*.orig
*.rej
.backup/
backup/
tmp/
temp/

#----------------------------------------------------------------------
# 12. Documentation and miscellaneous
#----------------------------------------------------------------------
*.md
!README.md

# Application configuration files (explicitly include)
!mcp-catalog.yml
LICENSE
CHANGELOG
AUTHORS
CONTRIBUTORS
TODO
TODO.md
DEVELOPING.md
CONTRIBUTING.md

# Spelling
.spellcheck-en.txt
*.dic

# Shell scripts (if not needed in container)
test.sh
scripts/test/
scripts/dev/

#----------------------------------------------------------------------
# 13. OS-specific files
#----------------------------------------------------------------------
# Windows
Thumbs.db
ehthumbs.db
Desktop.ini
$RECYCLE.BIN/

# Linux
*~
.fuse_hidden*
.directory
.Trash-*
.nfs*

#----------------------------------------------------------------------
# End of .dockerignore
#----------------------------------------------------------------------
