[PR #30460] chore: update dockerignore #32827

Closed
opened 2026-02-21 20:52:09 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/30460

State: closed
Merged: Yes


Important

  1. Make sure you have read our contribution guidelines
  2. Ensure there is an associated issue and you have been assigned to it
  3. Use the correct syntax to link this PR: Fixes #<issue number>.

Summary

Fixes #30459

This PR improves Docker build cache stability for the web frontend by updating .dockerignore to exclude Git metadata and other build-irrelevant files.

Previously, the .git directory was included in the Docker build context for web/Dockerfile. Since files under .git/ change frequently during normal Git operations and CI checkouts, the COPY . . instruction invalidated Docker layer cache on every build, causing the builder stage (pnpm build:docker) to run repeatedly even when no web source code had changed.

By explicitly excluding .git and related files, Docker layer caching now behaves as expected, significantly reducing unnecessary rebuilds in both local development and CI pipelines.

This change only affects build configuration and does not modify application logic or runtime behavior.

Screenshots

Before After
Web Docker image rebuilds on every run due to cache invalidation Docker layer cache is reused; pnpm build:docker runs only when relevant files change

Checklist

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran dev/reformat(backend) and cd web && npx lint-staged(frontend) to appease the lint gods
**Original Pull Request:** https://github.com/langgenius/dify/pull/30460 **State:** closed **Merged:** Yes --- > [!IMPORTANT] > > 1. Make sure you have read our [contribution guidelines](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) > 1. Ensure there is an associated issue and you have been assigned to it > 1. Use the correct syntax to link this PR: `Fixes #<issue number>`. ## Summary Fixes #30459 This PR improves Docker build cache stability for the **web frontend** by updating `.dockerignore` to exclude Git metadata and other build-irrelevant files. Previously, the `.git` directory was included in the Docker build context for `web/Dockerfile`. Since files under `.git/` change frequently during normal Git operations and CI checkouts, the `COPY . .` instruction invalidated Docker layer cache on every build, causing the `builder` stage (`pnpm build:docker`) to run repeatedly even when no web source code had changed. By explicitly excluding `.git` and related files, Docker layer caching now behaves as expected, significantly reducing unnecessary rebuilds in both local development and CI pipelines. This change only affects build configuration and does not modify application logic or runtime behavior. ## Screenshots | Before | After | |--------|-------| | Web Docker image rebuilds on every run due to cache invalidation | Docker layer cache is reused; `pnpm build:docker` runs only when relevant files change | ## Checklist - [ ] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs) - [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!) - [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change. - [x] I've updated the documentation accordingly. - [x] I ran `dev/reformat`(backend) and `cd web && npx lint-staged`(frontend) to appease the lint gods
yindo added the pull-request label 2026-02-21 20:52:09 -05:00
yindo closed this issue 2026-02-21 20:52:09 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#32827