Skip to content
This repository was archived by the owner on Mar 9, 2022. It is now read-only.

Commit 40affe7

Browse files
authored
Merge pull request #1283 from estesp/bp-1280
[release/1.2] Backport fix for default UNIX environment in OCI container config
2 parents ad5dcc6 + 6d433c5 commit 40affe7

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

pkg/server/container_create.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ func (c *criService) CreateContainer(ctx context.Context, r *runtime.CreateConta
264264
if err != nil {
265265
return nil, errors.Wrap(err, "failed to get runtime options")
266266
}
267+
267268
opts = append(opts,
268269
containerd.WithSpec(spec, specOpts...),
269270
containerd.WithRuntime(sandboxInfo.Runtime.Name, runtimeOptions),
@@ -904,6 +905,8 @@ func defaultRuntimeSpec(id string) (*runtimespec.Spec, error) {
904905
}
905906
if spec.Linux != nil {
906907
spec.Linux.Seccomp = nil
908+
// add default UNIX path; will be optionally overwritten by image config PATH env
909+
spec.Process.Env = append(spec.Process.Env, "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")
907910
}
908911

909912
// Remove default rlimits (See issue #515)

pkg/server/container_create_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,26 @@ func TestContainerSpecTty(t *testing.T) {
287287
}
288288
}
289289

290+
func TestContainerSpecDefaultPath(t *testing.T) {
291+
testID := "test-id"
292+
testSandboxID := "sandbox-id"
293+
testPid := uint32(1234)
294+
expectedDefault := "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
295+
containerConfig, sandboxConfig, imageConfig, specCheck := getCreateContainerTestData()
296+
c := newTestCRIService()
297+
for _, pathenv := range []string{"", "PATH=/usr/local/bin/games"} {
298+
expected := expectedDefault
299+
if pathenv != "" {
300+
imageConfig.Env = append(imageConfig.Env, pathenv)
301+
expected = pathenv
302+
}
303+
spec, err := c.generateContainerSpec(testID, testSandboxID, testPid, containerConfig, sandboxConfig, imageConfig, nil)
304+
require.NoError(t, err)
305+
specCheck(t, testID, testSandboxID, testPid, spec)
306+
assert.Contains(t, spec.Process.Env, expected)
307+
}
308+
}
309+
290310
func TestContainerSpecReadonlyRootfs(t *testing.T) {
291311
testID := "test-id"
292312
testSandboxID := "sandbox-id"

0 commit comments

Comments
 (0)