diff --git a/client/client_test.go b/client/client_test.go index 0213e45b1..d832362ef 100644 --- a/client/client_test.go +++ b/client/client_test.go @@ -80,6 +80,7 @@ func TestClientIntegration(t *testing.T) { testFrontendMetadataReturn, testSSHMount, testStdinClosed, + testHostnameLookup, }, integration.WithMirroredImages(integration.OfficialImages("busybox:latest", "alpine:latest")), ) @@ -89,6 +90,25 @@ func newContainerd(cdAddress string) (*containerd.Client, error) { return containerd.New(cdAddress, containerd.WithTimeout(60*time.Second)) } +func testHostnameLookup(t *testing.T, sb integration.Sandbox) { + if sb.Rootless() { + t.SkipNow() + } + t.Parallel() + + c, err := New(context.TODO(), sb.Address()) + require.NoError(t, err) + defer c.Close() + + st := llb.Image("busybox:latest").Run(llb.Shlex(`sh -c "ping -c 1 $(hostname)"`)) + + def, err := st.Marshal() + require.NoError(t, err) + + _, err = c.Solve(context.TODO(), def, SolveOpt{}, nil) + require.NoError(t, err) +} + // moby/buildkit#614 func testStdinClosed(t *testing.T, sb integration.Sandbox) { t.Parallel() diff --git a/executor/oci/hosts.go b/executor/oci/hosts.go index 405d758d3..c350a6de2 100644 --- a/executor/oci/hosts.go +++ b/executor/oci/hosts.go @@ -13,7 +13,7 @@ import ( ) const hostsContent = ` -127.0.0.1 localhost +127.0.0.1 localhost buildkitsandbox ::1 localhost ip6-localhost ip6-loopback ` diff --git a/executor/oci/spec_unix.go b/executor/oci/spec_unix.go index 193c6719b..d377b998a 100644 --- a/executor/oci/spec_unix.go +++ b/executor/oci/spec_unix.go @@ -44,6 +44,7 @@ func GenerateSpec(ctx context.Context, meta executor.Meta, mounts []executor.Mou s.Process.Args = meta.Args s.Process.Env = meta.Env s.Process.Cwd = meta.Cwd + s.Hostname = "buildkitsandbox" s.Mounts = GetMounts(ctx, withROBind(resolvConf, "/etc/resolv.conf"),