-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optimize Dockerfiles #4532
Optimize Dockerfiles #4532
Conversation
e7da948
to
ace607b
Compare
Saving a lot of layers at the top is not that efficiënt i think. |
ace607b
to
1325a13
Compare
Fair enough, if there's stuff here that you don't like just tell me and I'll remove it. I've been running my builds for a while with these changes and I figured other people might benefit from them as well. |
Do you build all arch's? |
amd64 and arm64, both for personal use |
A good tool to check this PR is https://github.com/wagoodman/dive |
I use that too indeed. But that will only work for the final image, not for the build layer. |
What do you guys think about including this as well for apt? |
It doesn't really add anything useful i think. Also, docker buildx does some nice caching by it self. And we already use build caches during our release pipeline. We used that before btw, which was useful back then, and not building in parallel. When building in parallel it gave some issues, which can be solved, but then it loses its benefits. |
While optimizing for layers does not have any benefit for the build part, it also doesn't hurt in this case. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks fine by me.
Move some ARGs closer to the build stage (potentially improving caching) Remove redundant COPY commands Remove redundant RUN command Move CARGO_HOME's "&&" operator to the first line (improves consistency)
1325a13
to
e1a5baf
Compare
Move some ARGs closer to the build stage (potentially improving caching) Remove redundant COPY commands Remove redundant RUN command Move CARGO_HOME's "&&" operator to the first line (improves consistency)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [vaultwarden/server](https://togithub.com/dani-garcia/vaultwarden) | minor | `1.30.5` -> `1.31.0` | --- ### Release Notes <details> <summary>dani-garcia/vaultwarden (vaultwarden/server)</summary> ### [`v1.31.0`](https://togithub.com/dani-garcia/vaultwarden/releases/tag/1.31.0) [Compare Source](https://togithub.com/dani-garcia/vaultwarden/compare/1.30.5...1.31.0) #### Major changes and New Features - Initial support for the beta releases of the new native mobile apps - Removed support for WebSocket traffic on port 3012, as it's been integrated on the main HTTP port for a few releases - Updated included web vault to 2024.5.1 #### General mention Bitwarden has changed the push API endpoints which affects the EU region endpoint users. So if you use the push functionality and use the EU region you need to make some changes. You have to update `push.bitwarden.eu` to `api.bitwarden.eu`. This is also an issue with any previous version of Vaultwarden. #### What's Changed - chore: remove repetitive words by [@​one230six](https://togithub.com/one230six) in [dani-garcia/vaultwarden#4422 - Fix comment in events.rs by [@​KrappRamiro](https://togithub.com/KrappRamiro) in [dani-garcia/vaultwarden#4408 - Improve JWT RSA key initialization and avoid saving public key by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4085 - Remove custom WebSocket code by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4001 - refactor: replace panic with a graceful exit by [@​tessus](https://togithub.com/tessus) in [dani-garcia/vaultwarden#4402 - Small improvements around email change by [@​Timshel](https://togithub.com/Timshel) in [dani-garcia/vaultwarden#4415 - Change timestamp data type. by [@​gzfrozen](https://togithub.com/gzfrozen) in [dani-garcia/vaultwarden#4355 - Fix [#​3624](https://togithub.com/dani-garcia/vaultwarden/issues/3624): fix manager permission within groups by [@​matlink](https://togithub.com/matlink) in [dani-garcia/vaultwarden#3754 - automatically use email address as 2fa provider by [@​stefan0xC](https://togithub.com/stefan0xC) in [dani-garcia/vaultwarden#4317 - fix: typos by [@​testwill](https://togithub.com/testwill) in [dani-garcia/vaultwarden#4440 - Update chrono and sqlite by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4436 - Update Rust and crates by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4445 - Use async verify for Yubikey by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4448 - update web-vault to v2024.3.1 (new vertical layout) by [@​stefan0xC](https://togithub.com/stefan0xC) in [dani-garcia/vaultwarden#4468 - Update crates and some Clippy fixes by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4475 - Update Key Rotation web-vault v2024.3.x by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4446 - Update Crate and Rust by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4522 - Implement custom DNS resolver by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#3988 - Add extra (unsupported) container build arch's by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4524 - Pass in collection ids to notifier when sharing cipher. by [@​kristof-mattei](https://togithub.com/kristof-mattei) in [dani-garcia/vaultwarden#4517 - improve access to collections via groups by [@​stefan0xC](https://togithub.com/stefan0xC) in [dani-garcia/vaultwarden#4441 - fix emergency access invites by [@​stefan0xC](https://togithub.com/stefan0xC) in [dani-garcia/vaultwarden#4337 - Some fixes for the new mobile apps by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4526 - Update Rust, crates and web-vault by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4558 - Improve Commentary Aesthetics by [@​rich-purnell](https://togithub.com/rich-purnell) in [dani-garcia/vaultwarden#4549 - Optimize Dockerfiles by [@​dfunkt](https://togithub.com/dfunkt) in [dani-garcia/vaultwarden#4532 - also delete organization_api_key when deleting organizations by [@​stefan0xC](https://togithub.com/stefan0xC) in [dani-garcia/vaultwarden#4557 - Fix public api for domains with path prefix by [@​FDHoho007](https://togithub.com/FDHoho007) in [dani-garcia/vaultwarden#4500 - Update crates by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4587 - Fix web-vault version in Docker(files/Settings) by [@​dfunkt](https://togithub.com/dfunkt) in [dani-garcia/vaultwarden#4575 - Update Alpine to version 3.20 by [@​dfunkt](https://togithub.com/dfunkt) in [dani-garcia/vaultwarden#4583 - differentiate external groups by organization id by [@​stefan0xC](https://togithub.com/stefan0xC) in [dani-garcia/vaultwarden#4586 - Remove old knowndevice route by [@​Timshel](https://togithub.com/Timshel) in [dani-garcia/vaultwarden#4578 - Update admin interface dependencies by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4581 - Update rust and remove unused header values by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4645 - Update crates, web-vault and GHA by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4648 - Fix some nightly build errors by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4657 - Fix some more nightly errors and remove lint that will become an error by default by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4661 - Change API and structs to camelCase by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4386 - Fix cipher creation on new android app by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4670 - Remove mimalloc workaround by [@​dfunkt](https://togithub.com/dfunkt) in [dani-garcia/vaultwarden#4606 - Change some missing PascalCase keys by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4671 - Fix collections and native app issue by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4685 - Fix duplicate folder creations during import by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4702 - Remove duplicate registry step by [@​dfunkt](https://togithub.com/dfunkt) in [dani-garcia/vaultwarden#4703 - add group support for Cipher::get_collections() by [@​stefan0xC](https://togithub.com/stefan0xC) in [dani-garcia/vaultwarden#4592 - Switch registry cache compression algorithm to zstd by [@​dfunkt](https://togithub.com/dfunkt) in [dani-garcia/vaultwarden#4704 - Update crates and web-vault by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4714 - Some fixes for emergency access by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4715 #### New Contributors - [@​one230six](https://togithub.com/one230six) made their first contribution in [dani-garcia/vaultwarden#4422 - [@​KrappRamiro](https://togithub.com/KrappRamiro) made their first contribution in [dani-garcia/vaultwarden#4408 - [@​testwill](https://togithub.com/testwill) made their first contribution in [dani-garcia/vaultwarden#4440 - [@​kristof-mattei](https://togithub.com/kristof-mattei) made their first contribution in [dani-garcia/vaultwarden#4517 - [@​rich-purnell](https://togithub.com/rich-purnell) made their first contribution in [dani-garcia/vaultwarden#4549 - [@​dfunkt](https://togithub.com/dfunkt) made their first contribution in [dani-garcia/vaultwarden#4532 - [@​FDHoho007](https://togithub.com/FDHoho007) made their first contribution in [dani-garcia/vaultwarden#4500 **Full Changelog**: dani-garcia/vaultwarden@1.30.5...1.31.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 10pm every weekday,every weekend,before 5am every weekday" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/NorkzYT/Wolflith). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjUuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQyNS4xIiwidGFyZ2V0QnJhbmNoIjoic3RhZ2luZyIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJtaW5vciIsInJlbm92YXRlIl19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…1.31.0@4e28425 by renovate (#24153) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [docker.io/vaultwarden/server](https://togithub.com/dani-garcia/vaultwarden) | minor | `1.30.5` -> `1.31.0` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>dani-garcia/vaultwarden (docker.io/vaultwarden/server)</summary> ### [`v1.31.0`](https://togithub.com/dani-garcia/vaultwarden/releases/tag/1.31.0) [Compare Source](https://togithub.com/dani-garcia/vaultwarden/compare/1.30.5...1.31.0) #### Major changes and New Features - Initial support for the beta releases of the new native mobile apps - Removed support for WebSocket traffic on port 3012, as it's been integrated on the main HTTP port for a few releases - Updated included web vault to 2024.5.1 #### General mention Bitwarden has changed the push API endpoints which affects the EU region endpoint users. So if you use the push functionality and use the EU region you need to make some changes. You have to update `push.bitwarden.eu` to `api.bitwarden.eu`. This is also an issue with any previous version of Vaultwarden. #### What's Changed - chore: remove repetitive words by [@​one230six](https://togithub.com/one230six) in [dani-garcia/vaultwarden#4422 - Fix comment in events.rs by [@​KrappRamiro](https://togithub.com/KrappRamiro) in [dani-garcia/vaultwarden#4408 - Improve JWT RSA key initialization and avoid saving public key by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4085 - Remove custom WebSocket code by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4001 - refactor: replace panic with a graceful exit by [@​tessus](https://togithub.com/tessus) in [dani-garcia/vaultwarden#4402 - Small improvements around email change by [@​Timshel](https://togithub.com/Timshel) in [dani-garcia/vaultwarden#4415 - Change timestamp data type. by [@​gzfrozen](https://togithub.com/gzfrozen) in [dani-garcia/vaultwarden#4355 - Fix [#​3624](https://togithub.com/dani-garcia/vaultwarden/issues/3624): fix manager permission within groups by [@​matlink](https://togithub.com/matlink) in [dani-garcia/vaultwarden#3754 - automatically use email address as 2fa provider by [@​stefan0xC](https://togithub.com/stefan0xC) in [dani-garcia/vaultwarden#4317 - fix: typos by [@​testwill](https://togithub.com/testwill) in [dani-garcia/vaultwarden#4440 - Update chrono and sqlite by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4436 - Update Rust and crates by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4445 - Use async verify for Yubikey by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4448 - update web-vault to v2024.3.1 (new vertical layout) by [@​stefan0xC](https://togithub.com/stefan0xC) in [dani-garcia/vaultwarden#4468 - Update crates and some Clippy fixes by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4475 - Update Key Rotation web-vault v2024.3.x by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4446 - Update Crate and Rust by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4522 - Implement custom DNS resolver by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#3988 - Add extra (unsupported) container build arch's by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4524 - Pass in collection ids to notifier when sharing cipher. by [@​kristof-mattei](https://togithub.com/kristof-mattei) in [dani-garcia/vaultwarden#4517 - improve access to collections via groups by [@​stefan0xC](https://togithub.com/stefan0xC) in [dani-garcia/vaultwarden#4441 - fix emergency access invites by [@​stefan0xC](https://togithub.com/stefan0xC) in [dani-garcia/vaultwarden#4337 - Some fixes for the new mobile apps by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4526 - Update Rust, crates and web-vault by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4558 - Improve Commentary Aesthetics by [@​rich-purnell](https://togithub.com/rich-purnell) in [dani-garcia/vaultwarden#4549 - Optimize Dockerfiles by [@​dfunkt](https://togithub.com/dfunkt) in [dani-garcia/vaultwarden#4532 - also delete organization_api_key when deleting organizations by [@​stefan0xC](https://togithub.com/stefan0xC) in [dani-garcia/vaultwarden#4557 - Fix public api for domains with path prefix by [@​FDHoho007](https://togithub.com/FDHoho007) in [dani-garcia/vaultwarden#4500 - Update crates by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4587 - Fix web-vault version in Docker(files/Settings) by [@​dfunkt](https://togithub.com/dfunkt) in [dani-garcia/vaultwarden#4575 - Update Alpine to version 3.20 by [@​dfunkt](https://togithub.com/dfunkt) in [dani-garcia/vaultwarden#4583 - differentiate external groups by organization id by [@​stefan0xC](https://togithub.com/stefan0xC) in [dani-garcia/vaultwarden#4586 - Remove old knowndevice route by [@​Timshel](https://togithub.com/Timshel) in [dani-garcia/vaultwarden#4578 - Update admin interface dependencies by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4581 - Update rust and remove unused header values by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4645 - Update crates, web-vault and GHA by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4648 - Fix some nightly build errors by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4657 - Fix some more nightly errors and remove lint that will become an error by default by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4661 - Change API and structs to camelCase by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4386 - Fix cipher creation on new android app by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4670 - Remove mimalloc workaround by [@​dfunkt](https://togithub.com/dfunkt) in [dani-garcia/vaultwarden#4606 - Change some missing PascalCase keys by [@​dani-garcia](https://togithub.com/dani-garcia) in [dani-garcia/vaultwarden#4671 - Fix collections and native app issue by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4685 - Fix duplicate folder creations during import by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4702 - Remove duplicate registry step by [@​dfunkt](https://togithub.com/dfunkt) in [dani-garcia/vaultwarden#4703 - add group support for Cipher::get_collections() by [@​stefan0xC](https://togithub.com/stefan0xC) in [dani-garcia/vaultwarden#4592 - Switch registry cache compression algorithm to zstd by [@​dfunkt](https://togithub.com/dfunkt) in [dani-garcia/vaultwarden#4704 - Update crates and web-vault by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4714 - Some fixes for emergency access by [@​BlackDex](https://togithub.com/BlackDex) in [dani-garcia/vaultwarden#4715 #### New Contributors - [@​one230six](https://togithub.com/one230six) made their first contribution in [dani-garcia/vaultwarden#4422 - [@​KrappRamiro](https://togithub.com/KrappRamiro) made their first contribution in [dani-garcia/vaultwarden#4408 - [@​testwill](https://togithub.com/testwill) made their first contribution in [dani-garcia/vaultwarden#4440 - [@​kristof-mattei](https://togithub.com/kristof-mattei) made their first contribution in [dani-garcia/vaultwarden#4517 - [@​rich-purnell](https://togithub.com/rich-purnell) made their first contribution in [dani-garcia/vaultwarden#4549 - [@​dfunkt](https://togithub.com/dfunkt) made their first contribution in [dani-garcia/vaultwarden#4532 - [@​FDHoho007](https://togithub.com/FDHoho007) made their first contribution in [dani-garcia/vaultwarden#4500 **Full Changelog**: dani-garcia/vaultwarden@1.30.5...1.31.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNiIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC42IiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImF1dG9tZXJnZSIsInVwZGF0ZS9kb2NrZXIvZ2VuZXJhbC9ub24tbWFqb3IiXX0=-->
Move some ARGs closer to the build stage (potentially improving caching):
Example: I usually set VW_VERSION to be the latest commit hash, without this change I'd have to also rebuild the dependencies even if they didn't change since the previous layers would get invalidated.
Remove redundant COPY commands:
They can be combined, no point in using extra layers if it can be avoided.
Remove redundant RUN command:
apt-get and xx-apt-get commands can be moved into the same RUN command, thus saving another layer.
Move CARGO_HOME's "&&" operator to the first line (improves consistency)