Skip to content

dockerTools: Add example of using NixOS' etc#175474

Merged
roberth merged 2 commits intoNixOS:masterfrom
hercules-ci:issue-148456-dockerTools-example-etc
Jun 22, 2022
Merged

dockerTools: Add example of using NixOS' etc#175474
roberth merged 2 commits intoNixOS:masterfrom
hercules-ci:issue-148456-dockerTools-example-etc

Conversation

@roberth
Copy link
Member

@roberth roberth commented May 30, 2022

Description of changes

(cherry picked from commit 9b2af86)

#148456 came up again; figured I'd try to make some progress again.

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 22.05 Release Notes (or backporting 21.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

roberth added 2 commits May 30, 2022 14:26
/etc/hosts is generally also provided by the container runtime.
@github-actions github-actions bot added the 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS label May 30, 2022
@roberth roberth added the 6.topic: docker tools Open-source software for deploying and running of containerized applications label May 30, 2022
enableFakechroot = true;
fakeRootCommands = ''
mkdir -p /etc
${nixosCore.config.system.build.etcActivationCommands}
Copy link
Member Author

Choose a reason for hiding this comment

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

We should have a function in dockerTools that just takes a module and runs the whole activation script, but I don't think the modules are in a state to support that yet. Until then, this is the best we can do.

@ofborg ofborg bot added 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux. labels May 30, 2022
Copy link
Member

@06kellyjac 06kellyjac left a comment

Choose a reason for hiding this comment

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

Nice

Just 1 question

)

with subtest("etc"):
docker.succeed("${examples.etc} | docker load")
Copy link
Member

Choose a reason for hiding this comment

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

Does this not need to be

Suggested change
docker.succeed("${examples.etc} | docker load")
docker.succeed("cat ${examples.etc} | docker load")

or

Suggested change
docker.succeed("${examples.etc} | docker load")
docker.succeed("docker load -i ${examples.etc}")

?

Copy link
Member Author

Choose a reason for hiding this comment

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

It's actually a script, so the current thing works.
It's more efficient to use streamLayeredImage than buildLayeredImage because we don't have to store and later GC the image.

Copy link
Member

Choose a reason for hiding this comment

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

ahh

@roberth roberth merged commit 9d92bee into NixOS:master Jun 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: docker tools Open-source software for deploying and running of containerized applications 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants