Feature: Dockerfile Organization & Enhancements #888
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proposed change
This PR accomplishes a few improvements to our Dockerfile, with no functional changes and at least a few MBs of image size shaved off.
First, the Dockerfile is now roughly ordered in order from least changing (jbig2enc) to most changing (back and front ends). Anytime a layer changes, following layers must re-run, so this ordering helps reduce the churn a bit.
Although with the registry caching the build is pretty quick, when there is a change to requirements.txt (so every Monday), all the runtime packages are also re-installed. This change de-couples the Python requirements from the system requirements.
Finally, the buildkit syntax has support for a RUN command which can mount either local or image file systems into the build. This means instead of copying the library of installers, they can be mounted, run and unmounted, instead of being left taking up space in the final image.
There should be zero functional changes. I've successfuly loaded documents, run management commands and accessed the webui without issue.
Type of change
Checklist:
pre-commit
hooks, see documentation.