summary refs log tree commit diff
path: root/pkgs/build-support/docker/default.nix
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2021-08-20 19:44:17 +0200
committerGitHub <noreply@github.com>2021-08-20 19:44:17 +0200
commitf8031c60b72f26adeaa236abc3dabd52b94b4978 (patch)
tree09469d375ad30b49251d9842d2ea408c3f7f6573 /pkgs/build-support/docker/default.nix
parent3efbe3863aba9bbb49d1f0163d2665b44c125a01 (diff)
downloadnixpkgs-f8031c60b72f26adeaa236abc3dabd52b94b4978.tar
nixpkgs-f8031c60b72f26adeaa236abc3dabd52b94b4978.tar.gz
nixpkgs-f8031c60b72f26adeaa236abc3dabd52b94b4978.tar.bz2
nixpkgs-f8031c60b72f26adeaa236abc3dabd52b94b4978.tar.lz
nixpkgs-f8031c60b72f26adeaa236abc3dabd52b94b4978.tar.xz
nixpkgs-f8031c60b72f26adeaa236abc3dabd52b94b4978.tar.zst
nixpkgs-f8031c60b72f26adeaa236abc3dabd52b94b4978.zip
dockerTools.fakeNss: add /etc/nsswitch.conf (#134958)
Apparently, a non-existent nsswitch.conf causes a very misleading host
resolution, differing from the defaults people are used to.

According to
https://github.com/golang/go/issues/22846#issuecomment-346377144, glibc
says the default is "dns [!UNAVAIL=return] files".

This means, `/etc/hosts` isn't really honored, causing all sorts of
unexpected behaviour.

Let's prevent this, and first ask `/etc/hosts` before querying DNS, like
we do on NixOS too.
Diffstat (limited to 'pkgs/build-support/docker/default.nix')
-rw-r--r--pkgs/build-support/docker/default.nix3
1 files changed, 3 insertions, 0 deletions
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index d76efac55b1..832d2949a1a 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -750,6 +750,9 @@ rec {
         root:x:0:
         nobody:x:65534:
       '')
+      (writeTextDir "etc/nsswitch.conf" ''
+        hosts: files dns
+      '')
       (runCommand "var-empty" { } ''
         mkdir -p $out/var/empty
       '')