mirror of https://github.com/containers/podman.git
Merge pull request #3446 from giuseppe/fix-rootless-conf
rootless: use the correct conf file
This commit is contained in:
commit
5e3d63a53c
|
@ -373,7 +373,7 @@ func NewRuntimeFromConfig(ctx context.Context, userConfigPath string, options ..
|
||||||
func homeDir() (string, error) {
|
func homeDir() (string, error) {
|
||||||
home := os.Getenv("HOME")
|
home := os.Getenv("HOME")
|
||||||
if home == "" {
|
if home == "" {
|
||||||
usr, err := user.Current()
|
usr, err := user.LookupId(fmt.Sprintf("%d", rootless.GetRootlessUID()))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", errors.Wrapf(err, "unable to resolve HOME directory")
|
return "", errors.Wrapf(err, "unable to resolve HOME directory")
|
||||||
}
|
}
|
||||||
|
@ -391,28 +391,33 @@ func getRootlessConfigPath() (string, error) {
|
||||||
return filepath.Join(home, ".config/containers/libpod.conf"), nil
|
return filepath.Join(home, ".config/containers/libpod.conf"), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getConfigPath() string {
|
func getConfigPath() (string, error) {
|
||||||
if rootless.IsRootless() {
|
if rootless.IsRootless() {
|
||||||
rootlessConfigPath, err := getRootlessConfigPath()
|
path, err := getRootlessConfigPath()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if _, err := os.Stat(rootlessConfigPath); err == nil {
|
return "", err
|
||||||
return rootlessConfigPath
|
|
||||||
}
|
}
|
||||||
|
if _, err := os.Stat(path); err == nil {
|
||||||
|
return path, nil
|
||||||
}
|
}
|
||||||
|
return "", err
|
||||||
}
|
}
|
||||||
if _, err := os.Stat(OverrideConfigPath); err == nil {
|
if _, err := os.Stat(OverrideConfigPath); err == nil {
|
||||||
// Use the override configuration path
|
// Use the override configuration path
|
||||||
return OverrideConfigPath
|
return OverrideConfigPath, nil
|
||||||
}
|
}
|
||||||
if _, err := os.Stat(ConfigPath); err == nil {
|
if _, err := os.Stat(ConfigPath); err == nil {
|
||||||
return ConfigPath
|
return ConfigPath, nil
|
||||||
}
|
}
|
||||||
return ""
|
return "", nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// DefaultRuntimeConfig reads default config path and returns the RuntimeConfig
|
// DefaultRuntimeConfig reads default config path and returns the RuntimeConfig
|
||||||
func DefaultRuntimeConfig() (*RuntimeConfig, error) {
|
func DefaultRuntimeConfig() (*RuntimeConfig, error) {
|
||||||
configPath := getConfigPath()
|
configPath, err := getConfigPath()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
contents, err := ioutil.ReadFile(configPath)
|
contents, err := ioutil.ReadFile(configPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -460,8 +465,10 @@ func newRuntimeFromConfig(ctx context.Context, userConfigPath string, options ..
|
||||||
runtime.config.StaticDir = filepath.Join(storageConf.GraphRoot, "libpod")
|
runtime.config.StaticDir = filepath.Join(storageConf.GraphRoot, "libpod")
|
||||||
runtime.config.VolumePath = filepath.Join(storageConf.GraphRoot, "volumes")
|
runtime.config.VolumePath = filepath.Join(storageConf.GraphRoot, "volumes")
|
||||||
|
|
||||||
configPath := getConfigPath()
|
configPath, err := getConfigPath()
|
||||||
rootlessConfigPath := ""
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
if rootless.IsRootless() {
|
if rootless.IsRootless() {
|
||||||
home, err := homeDir()
|
home, err := homeDir()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -474,11 +481,6 @@ func newRuntimeFromConfig(ctx context.Context, userConfigPath string, options ..
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rootlessConfigPath, err = getRootlessConfigPath()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
runtimeDir, err := util.GetRootlessRuntimeDir()
|
runtimeDir, err := util.GetRootlessRuntimeDir()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -599,7 +601,13 @@ func newRuntimeFromConfig(ctx context.Context, userConfigPath string, options ..
|
||||||
return nil, errors.Wrapf(err, "error configuring runtime")
|
return nil, errors.Wrapf(err, "error configuring runtime")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if rootlessConfigPath != "" {
|
|
||||||
|
if rootless.IsRootless() && configPath == "" {
|
||||||
|
configPath, err := getRootlessConfigPath()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
// storage.conf
|
// storage.conf
|
||||||
storageConfFile, err := storage.DefaultConfigFile(rootless.IsRootless())
|
storageConfFile, err := storage.DefaultConfigFile(rootless.IsRootless())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -612,16 +620,16 @@ func newRuntimeFromConfig(ctx context.Context, userConfigPath string, options ..
|
||||||
}
|
}
|
||||||
|
|
||||||
if configPath != "" {
|
if configPath != "" {
|
||||||
os.MkdirAll(filepath.Dir(rootlessConfigPath), 0755)
|
os.MkdirAll(filepath.Dir(configPath), 0755)
|
||||||
file, err := os.OpenFile(rootlessConfigPath, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666)
|
file, err := os.OpenFile(configPath, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666)
|
||||||
if err != nil && !os.IsExist(err) {
|
if err != nil && !os.IsExist(err) {
|
||||||
return nil, errors.Wrapf(err, "cannot open file %s", rootlessConfigPath)
|
return nil, errors.Wrapf(err, "cannot open file %s", configPath)
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
enc := toml.NewEncoder(file)
|
enc := toml.NewEncoder(file)
|
||||||
if err := enc.Encode(runtime.config); err != nil {
|
if err := enc.Encode(runtime.config); err != nil {
|
||||||
os.Remove(rootlessConfigPath)
|
os.Remove(configPath)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue