diff options
author | Giuseppe Scrivano <gscrivan@redhat.com> | 2019-01-28 13:37:50 +0100 |
---|---|---|
committer | Giuseppe Scrivano <gscrivan@redhat.com> | 2019-02-05 11:37:33 +0100 |
commit | 61979d8ac27452fe6eb4c5e77278a2e9216a2d29 (patch) | |
tree | dcd25fb2a8542a339f3c51dc56bbbbdea06fd7bb | |
parent | 778f9867fdf0e5c777f6391f847b04758cab5d45 (diff) | |
download | podman-61979d8ac27452fe6eb4c5e77278a2e9216a2d29.tar.gz podman-61979d8ac27452fe6eb4c5e77278a2e9216a2d29.tar.bz2 podman-61979d8ac27452fe6eb4c5e77278a2e9216a2d29.zip |
rootless: copy some settings from the global configuration
if some paths are overriden in the global configuration file, be sure
that rootless podman honors them.
Closes: https://github.com/containers/libpod/issues/2174
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
-rw-r--r-- | libpod/runtime.go | 22 |
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 |