A Mac-staged tree (BSD tar materializes extended attributes as ._<name> sidecars) went through the docker build and one landed in internal/store/migrations/ — //go:embed-ed into the binary, where every `felis migrate` then died with 'migration "._0004..." has a non-numeric version'. Observed live wiring up the auditfix42 image: the installer's own run_migrations failed on it. Exclude the sidecars and .DS_Store from the build context; deploy/*.yaml and plugins/ have the same exposure.
45 lines
1.8 KiB
Plaintext
45 lines
1.8 KiB
Plaintext
# Keep the felis image build context lean, but mind the embeds: three trees MUST
|
|
# stay in the context or the image build fails. internal/store/migrations/*.sql,
|
|
# deploy/bootstrap.sh and deploy/crd/*.yaml are //go:embed-ed by Go packages the
|
|
# binary compiles, and internal/panel/static is the panel the Dockerfile panel
|
|
# stage builds from panel/. Exclude only build-irrelevant trees below; never add
|
|
# panel/, deploy/, or internal/ here without checking `grep -rn go:embed`.
|
|
.git
|
|
.claude
|
|
**/node_modules
|
|
# The MAIN felis binary //go:embed-s all four plugin source trees (see
|
|
# bootstrap_asset.go): `felis bootstrap-assets game-stack` emits them as the tar the
|
|
# limbo/lobby images and the host Velocity install build from. Every plugins/ source
|
|
# tree the embed names MUST stay in this context or `go build ./cmd/felis` fails with
|
|
# "pattern plugins/<x>/...: no matching files found".
|
|
# `plugins/*` excludes each sibling module individually (so plugins/ itself is still
|
|
# walked and the negations below can re-include), then the embedded source trees are
|
|
# pulled back in and their Gradle outputs re-excluded to keep the context lean.
|
|
plugins/*
|
|
!plugins/limbo
|
|
!plugins/paper
|
|
!plugins/shared
|
|
!plugins/velocity
|
|
plugins/**/build
|
|
plugins/**/.gradle
|
|
docs
|
|
*.md
|
|
Dockerfile
|
|
.dockerignore
|
|
.gitignore
|
|
*.pem
|
|
*.key
|
|
felis
|
|
felis.exe
|
|
|
|
# macOS materializes extended attributes as ._<name> sidecars (BSD tar uploads,
|
|
# Finder copies, network volumes) and leaves .DS_Store behind. Neither is
|
|
# source, and one is actively harmful: a ._*.sql beside the migrations is
|
|
# //go:embed-ed into the binary and makes every `felis migrate` fail
|
|
# ("non-numeric version") — observed live on a Mac-staged tree. Same exposure
|
|
# for any tree the other //go:embed patterns walk (deploy/, plugins/).
|
|
._*
|
|
**/._*
|
|
.DS_Store
|
|
**/.DS_Store
|