Skip to content

Expand .dockerignore to reduce unnecessary cache invalidation#4797

Open
singhvishalkr wants to merge 1 commit into
dexidp:masterfrom
singhvishalkr:fix-dockerignore-cache-invalidation
Open

Expand .dockerignore to reduce unnecessary cache invalidation#4797
singhvishalkr wants to merge 1 commit into
dexidp:masterfrom
singhvishalkr:fix-dockerignore-cache-invalidation

Conversation

@singhvishalkr
Copy link
Copy Markdown

Fixes #1968

The Dockerfile uses COPY . . which copies the entire source tree into the build context. This means any change to files that aren't needed for the build (like .git/, docs/, examples/) still invalidates the Docker layer cache.

This is particularly noticeable with .git/ -- every new commit, branch, or tag causes a full rebuild even though the actual source code hasn't changed.

The fix expands .dockerignore to exclude:

  • .git/ and .gitignore
  • docs/, examples/, and Markdown files
  • Editor and CI configs (.github/, .editorconfig, etc.)
  • Development-only files (docker-compose*.yaml, config.dev.yaml)
  • The Dockerfile itself

This keeps the build context minimal and focused on what the image actually needs: Go source files, dependencies (go.mod/go.sum), config.docker.yaml, and web/ templates.

The Dockerfile copies the entire source tree with COPY . ., which means
any change to .git/, docs/, examples/, or other non-build files
invalidates the Docker layer cache.

Add exclusions for:
- .git/ (changes on every commit)
- Documentation and examples
- Editor/tool configs
- Development-only files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Stop copying unneccesary files/folders during the building stage

1 participant