# .dockerignore uses Go filepath.Match, NOT .gitignore semantics: `*` # does not cross `/`, and a pattern without a leading `**/` is anchored # at the build-context root. Every depth-independent pattern therefore # needs the `**/` prefix — without it `config/.env` and # `certs/server.key` still ship while the file reads as solved. # # Root-anchored entries are for paths that occur exactly once, at the # context root. A host-built binary is the usual case, and it must be # written anchored: `/myapp`, never `**/myapp`. The prefixed form also # matches `cmd/myapp/`, which deletes the package directory from the # context. # # Matching is case-sensitive, so `**/*.key` does not match # `certs/SERVER.KEY`. The secret-material extensions below use character # classes, which cover every capitalisation in one line — a doubled # ALL-CAPS pattern would still miss `Server.Key` while reading as though # case were handled. Names that only ever exist in one spelling because # a tool writes them (`.env`, `.envrc`, `id_rsa`) stay literal. # # Extend this file with the repo's own host-built artifacts (compiled # binaries, test binaries, coverage output); those are per-repo and # belong here because a host build otherwise drops them into the # context. # Repository metadata: exactly one, at the context root. .git # Environment files. `*.env` covers the `prod.env` / `local.env` # convention; the `.env` and `.env.*` spellings are listed explicitly # because they are what most tooling writes. **/.env **/.env.* **/*.[eE][nN][vV] **/.envrc # Private keys and the bundles that carry them. Public certificates # (*.crt, *.cer) are deliberately absent: they are not secrets and are # sometimes a legitimate build input. **/*.[pP][eE][mM] **/*.[kK][eE][yY] **/*.[pP]12 **/*.[pP][fF][xX] **/id_rsa **/id_dsa **/id_ecdsa **/id_ed25519 # Dependencies: restored inside the image, never copied in. **/node_modules # OS metadata. **/.DS_Store **/Thumbs.db # Editor state. Never a build input, and it churns under a developer's # hands, so it invalidates COPY for reasons unrelated to the source. **/*.swp **/*.swo **/*~ **/*.bak **/.idea **/.vscode **/*.sublime-*