Jib 为临时文件创建文件夹并更改文件夹所有权

Jib create folder for temporary files and changing folder ownership

我想在我的 spring 启动应用程序中创建临时文件。我使用 JIB 构建图像并将它们部署在 kubernetes 中。当我尝试创建临时文件时收到错误消息,因为容器是由非根用户启动的。

现在我正在寻找允许我的应用程序将文件保存在图像文件系统中的解决方法。我已经看到 JIB 的 this 扩展,它提供了更改目录所有权的可能性。我已经尝试过多次使用不同的配置来自己实现它,但我的所有尝试都失败了。这是我的配置,它也不起作用:

jib {
    from.image = "..."
    to.image = "..."
    container {
        user = '1000'
    }
    extraDirectories {
        paths {
            path {
                from = 'export'
                into = '/app/export'
            }
        }
    }

    pluginExtensions {
        pluginExtension {
            implementation = 'com.google.cloud.tools.jib.gradle.extension.ownership.JibOwnershipExtension'
            configuration {
                rules {
                    rule {
                        glob = 'app/export/**'
                        ownership = '1000'
                    }
                }
            }
        }
    }
}

是否有更方便的方法来实现我的目标,或者我在配置中遗漏了一些重要的东西?

UPD: Jib 版本为 3.2.0

我无法将 path.into 用于 extraDirectories。我怀疑这是 Jib 的一个错误(或当前的技术限制)。

也就是说,对我有用的是,而不是设置 path.into,用所需的布局构建额外的目录。例如,具有以下目录结构,

<project root>/jib-extra/app/export

你会

    extraDirectories.paths = ['jib-extra']

    pluginExtensions {
        pluginExtension {
            implementation = 'com.google.cloud.tools.jib.gradle.extension.ownership.JibOwnershipExtension'
            configuration {
                rules {
                    rule {
                        // must be absolute path starting with '/'
                        glob = '/app/export'
                        ownership = '1000'
                    }
                    // if you have files under /app/export
                    rule {
                        glob = '/app/export/**'
                        ownership = '1000'
                    }
                }
            }

最后,我认为 可能是您的另一种选择?