hostinfo,build_docker.sh,tailcfg: more reliably detect being in a container (#13826)

Our existing container-detection tricks did not work on Kubernetes,
where Docker is no longer used as a container runtime. Extends the
existing go build tags for containers to the other container packages
and uses that to reliably detect builds that were created by Tailscale
for use in a container. Unfortunately this doesn't necessarily improve
detection for users' custom builds, but that's a separate issue.

Updates #13825

Signed-off-by: Tom Proctor <tomhjp@users.noreply.github.com>
This commit is contained in:
Tom Proctor
2024-10-15 19:38:11 +01:00
committed by GitHub
parent a8f9c0d6e4
commit 5f22f72636
5 changed files with 37 additions and 4 deletions

View File

@ -1,7 +1,7 @@
// Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause
//go:build linux && !android
//go:build linux && !android && !ts_package_container
package hostinfo
@ -34,3 +34,9 @@ remotes/origin/QTSFW_5.0.0`
t.Errorf("got %q; want %q", got, want)
}
}
func TestInContainer(t *testing.T) {
if got := inContainer(); !got.EqualBool(false) {
t.Errorf("inContainer = %v; want false due to absence of ts_package_container build tag", got)
}
}