# 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 # plugins/ is code-only and excluded from the MAIN felis image — EXCEPT the source # trees the two game images compile: the login-limbo image (deploy/limbo/Dockerfile) # builds plugins/limbo, the lobby image (deploy/lobby/Dockerfile) builds plugins/paper, # and both srcDir-include the shared link core (plugins/shared). # `plugins/*` excludes each sibling module individually (so plugins/ itself is still # walked and the negations below can re-include), then the build trees are pulled # back in and their Gradle outputs re-excluded to keep the context lean. The main # image copies none of plugins/, so carrying these small source dirs is harmless. plugins/* !plugins/limbo !plugins/paper !plugins/shared plugins/**/build plugins/**/.gradle docs *.md Dockerfile .dockerignore .gitignore *.pem *.key felis felis.exe