1

I'm trying to build a Docker image with Nix at a pinned revision. The file works when it looks like this:

{ pkgs ? import <nixpkgs> { }
}:

pkgs.dockerTools.buildImage {
  ...

But fails when it looks like this:

{ pkgs ? (import (builtins.fetchTarball { url = "https://github.com/NixOS/nixpkgs/archive/44fc3cb097324c9f9f93313dd3f103e78d722968.tar.gz"; sha256 = "0hxzigajiqjwxbk9bcbvgxq28drq1k2hgmzihs0c441i1wsbqchb";  }) {})
}:

pkgs.dockerTools.buildImage {
  ...

The error is:

error: 'buildImage' at /nix/store/pyq9xfm1ikhd70dfzbg6fywyqgcvly1l-source/pkgs/build-support/docker/default.nix:491:5 called with unexpected argument 'copyToRoot'

Any suggestions on what I'm doing wrong?

1 Answer 1

3

So copyToRoot used to be called contents as changed few months ago in this commit https://github.com/NixOS/nixpkgs/commit/e007eb480c6041fd98b8f9e53bdac2ba82e4648c and your commit points to this old version (I guess it belongs to a different branch than master).

In a recent commit on master like 44fc3cb097324c9f9f93313dd3f103e78d72296 you should not have this issue as you can check https://github.com/NixOS/nixpkgs/blame/44fc3cb097324c9f9f93313dd3f103e78d722968/pkgs/build-support/docker/default.nix#L503

2
  • Thanks, that's really helpful - I'd grabbed the commit hash from the "nixos-22.05" channel, which presumably has not received the "copyToRoot" change. Is there a way to view the commit hash of whatever it is that "import <nixpkgs>" resolves? Commented Oct 23, 2022 at 18:58
  • 1
    Yes, see e.g. my answer there unix.stackexchange.com/a/721444/169695 Commented Oct 24, 2022 at 7:19

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.