Merge pull request #6241 from jterry75/main

Add support for TMP override on toml
This commit is contained in:
Maksym Pavlenko 2021-11-18 16:43:51 -08:00 committed by GitHub
commit af93ea7f1e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 1 deletions

View File

@ -39,6 +39,8 @@ type Config struct {
Root string `toml:"root"`
// State is the path to a directory where containerd will store transient data
State string `toml:"state"`
// TempDir is the path to a directory where to place containerd temporary files
TempDir string `toml:"temp"`
// PluginDir is the directory for dynamic plugins to be stored
PluginDir string `toml:"plugin_dir"`
// GRPC configuration settings

View File

@ -27,6 +27,7 @@ import (
"net/http/pprof"
"os"
"path/filepath"
"runtime"
"strings"
"sync"
"time"
@ -75,7 +76,28 @@ func CreateTopLevelDirectories(config *srvconfig.Config) error {
return err
}
return sys.MkdirAllWithACL(config.State, 0711)
if err := sys.MkdirAllWithACL(config.State, 0711); err != nil {
return err
}
if config.TempDir != "" {
if err := sys.MkdirAllWithACL(config.TempDir, 0711); err != nil {
return err
}
if runtime.GOOS == "windows" {
// On Windows, the Host Compute Service (vmcompute) will read the
// TEMP/TMP setting from the calling process when creating the
// tempdir to extract an image layer to. This allows the
// administrator to align the tempdir location with the same volume
// as the snapshot dir to avoid a copy operation when moving the
// extracted layer to the snapshot dir location.
os.Setenv("TEMP", config.TempDir)
os.Setenv("TMP", config.TempDir)
} else {
os.Setenv("TMPDIR", config.TempDir)
}
}
return nil
}
// New creates and initializes a new containerd server