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: allow to pass extraCommands, uid and gid to buildLayered image #52870

Merged

Conversation

offlinehacker
Copy link
Contributor

@offlinehacker offlinehacker commented Dec 25, 2018

I want to create additional files during build, and change permissions. This is an example:

pkgs.dockerTools.buildLayeredImage {
  name = "xtruder/kubepatcher";
  tag = "latest";

  contents = [ pkg pkgs.cacert passwd group ];

  extraCommands = ''
    mkdir tmp
    chmod 1777 tmp
  '';

  config = {
    Entrypoint = "${pkg}/bin/kubepatcher";
    Cmd = [ "--logtostderr" ];
    User = "app";
  };
}
Motivation for this change
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • 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 nox --run "nox-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)
  • Assured whether relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@offlinehacker offlinehacker changed the title dockerTools: allow to pass extraCommands, uid and gid to buildLayered… dockerTools: allow to pass extraCommands, uid and gid to buildLayered image Dec 25, 2018
Copy link
Contributor

@puffnfresh puffnfresh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wanted this functionality a few days ago 👍

@nlewo
Copy link
Member

nlewo commented Dec 26, 2018

@offlinehacker Could you add a test in docker-tools? For instance, load your example and check permissions are correct on Docker run.

@offlinehacker offlinehacker force-pushed the pkgs/dockerTools/buildLayeredImage/extraCommands branch from 892e1c4 to 5b93cfa Compare January 10, 2019 14:37
@offlinehacker
Copy link
Contributor Author

Ok, i updated test

@offlinehacker offlinehacker force-pushed the pkgs/dockerTools/buildLayeredImage/extraCommands branch from 5b93cfa to 954cda5 Compare January 10, 2019 15:02
@nlewo
Copy link
Member

nlewo commented Jan 10, 2019

@GrahamcOfBorg test docker-tools

@nlewo
Copy link
Member

nlewo commented Jan 10, 2019

(tests passed locally)
Thanks!

@nlewo nlewo merged commit 7612a6a into NixOS:master Jan 10, 2019
@offlinehacker offlinehacker deleted the pkgs/dockerTools/buildLayeredImage/extraCommands branch January 12, 2019 11:35
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

5 participants