fix: do not change permissions on config directory symlinks

When running in docker, the 'config' directory can be a symlink, which causes issues during plugin installation.

Refs #7308
This commit is contained in:
Jose Diaz-Gonzalez
2025-08-11 23:46:02 -04:00
parent d3054c4908
commit dc35a7876c
2 changed files with 22 additions and 6 deletions

View File

@@ -516,19 +516,24 @@ func PropertyWrite(pluginName string, appName string, property string, value str
// PropertySetup creates the plugin config root
func PropertySetup(pluginName string) error {
configRoot := filepath.Join(MustGetEnv("DOKKU_LIB_ROOT"), "config")
pluginConfigRoot := getPluginConfigPath(pluginName)
if err := os.MkdirAll(pluginConfigRoot, 0755); err != nil {
return err
}
input := SetPermissionInput{
Filename: filepath.Join(MustGetEnv("DOKKU_LIB_ROOT"), "config"),
Mode: os.FileMode(0755),
// check if configRoot is a symlink
if !IsSymlink(configRoot) {
input := SetPermissionInput{
Filename: configRoot,
Mode: os.FileMode(0755),
}
if err := SetPermissions(input); err != nil {
return err
}
}
if err := SetPermissions(input); err != nil {
return err
}
return SetPermissions(SetPermissionInput{
Filename: pluginConfigRoot,
Mode: os.FileMode(0755),