# Build context exclusions.
#
# The build context is sent to the daemon in full before the first COPY, so
# anything left in here is uploaded and then ignored. On a working tree with a
# populated node_modules and a local database that is hundreds of megabytes of
# pointless transfer, and it is also how a local .env or an unencrypted database
# file ends up inside an image layer.

# Dependencies and build output. The image builds these itself from the
# lockfiles, so shipping the host's copies would risk building against a
# different dependency set than the one that was tested.
node_modules
**/node_modules
web/dist
sdk/dist
dist
bin
.cache

# Local data. A SQLite database in a layer is both a size problem and a data leak,
# and the image creates its own at /srv/data.
data
*.db
*.db-shm
*.db-wal
*.sqlite
*.sqlite3

# Secrets and local configuration.
.env
.env.*
!.env.example
*.pem
*.key
*.crt
secrets/

# Version control and CI. The build stamps the version from build arguments, so it
# never reads git metadata.
.git
.gitignore
.github
.gitattributes

# Documentation. Not needed to build or run the image.
docs
*.md
!README.md

# Deployment and development scaffolding.
deploy
hack
.github
.editorconfig
.prettierignore
.env.example
compose.yaml
docker-bake.hcl
docker-compose*.yml
Dockerfile*
goreleaser.yaml
.openapi-generatorignore

# Editor and OS noise.
.vscode
.idea
*.swp
*.swo
.DS_Store
Thumbs.db

# Logs and temporary files.
*.log
npm-debug.log*
tmp
.cache