summaryrefslogtreecommitdiff
path: root/libpod/runtime.go
diff options
context:
space:
mode:
Diffstat (limited to 'libpod/runtime.go')
-rw-r--r--libpod/runtime.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/libpod/runtime.go b/libpod/runtime.go
index c7000d84a..c975f628b 100644
--- a/libpod/runtime.go
+++ b/libpod/runtime.go
@@ -385,6 +385,28 @@ func NewRuntime(options ...RuntimeOption) (runtime *Runtime, err error) {
if _, err := toml.Decode(string(contents), runtime.config); err != nil {
return nil, errors.Wrapf(err, "error decoding configuration file %s", configPath)
}
+ } else if rootless.IsRootless() {
+ // If the configuration file was not found but we are running in rootless, a subset of the
+ // global config file is used.
+ for _, path := range []string{OverrideConfigPath, ConfigPath} {
+ contents, err := ioutil.ReadFile(OverrideConfigPath)
+ if err != nil {
+ // Ignore any error, the file might not be readable by us.
+ continue
+ }
+ tmpConfig := new(RuntimeConfig)
+ if _, err := toml.Decode(string(contents), tmpConfig); err != nil {
+ return nil, errors.Wrapf(err, "error decoding configuration file %s", path)
+ }
+
+ // Cherry pick the settings we want from the global configuration
+ runtime.config.ConmonPath = tmpConfig.ConmonPath
+ runtime.config.ConmonEnvVars = tmpConfig.ConmonEnvVars
+ runtime.config.OCIRuntimes = tmpConfig.OCIRuntimes
+ runtime.config.CNIPluginDir = tmpConfig.CNIPluginDir
+ runtime.config.NoPivotRoot = tmpConfig.NoPivotRoot
+ break
+ }
}
// Overwrite config with user-given configuration options