Skip to content
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

dockerTools.buildLayeredImage: store all paths passed in final layer (backport) #82741

Merged
merged 1 commit into from Mar 16, 2020

Conversation

roberth
Copy link
Member

@roberth roberth commented Mar 16, 2020

Backport of #80102 into release-20.03

Quote

Fixes #78744

My previous change broke when there are more packages than the maximum
number of layers. I had assumed that the store-path-to-layer.sh was
only ever passed a single store path, but that is not the case if
there are multiple packages going into the final layer. To fix this, we
loop through the paths going into the final layer, appending them to the
tar file and making sure they end up at the right path.

Motivation for this change
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

Fixes NixOS#78744

My previous change broke when there are more packages than the maximum
number of layers. I had assumed that the `store-path-to-layer.sh` was
only ever passed a single store path, but that is not the case if
there are multiple packages going into the final layer. To fix this, we
loop through the paths going into the final layer, appending them to the
tar file and making sure they end up at the right path.
@roberth
Copy link
Member Author

roberth commented Mar 16, 2020

@GrahamcOfBorg test docker-tools

@domenkozar
Copy link
Member

Any reason not to backport also regression test?

@roberth
Copy link
Member Author

roberth commented Mar 16, 2020

That was already done https://hydra.nixos.org/build/114270717/nixlog/35

@domenkozar
Copy link
Member

Seems like I missed this one. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants