Cloud Build 触发器更改文件权限并中​​断 docker 缓存

Cloud Build trigger changes file permissions and breaks docker caching

我正在使用 google-cloud-build 作为 CI 来测试 PR 是否破坏了构建。

构建基本上是在创建 Docker 图像。 为了减少构建时间,我正在尝试使用 dockers --cache-from 功能,但它在 COPY ... 上对我来说失败了,因为在使用 Github App trigger 时,大多数文件权限由于某种原因被更改了。 使用 Github trigger 时不会发生此问题,但我无法按照 here.

所述在 PR 上触发它

有没有办法防止云构建在使用 Github App trigger 时更改文件权限?还有其他方法可以解决这个问题吗?

目前,我们认为这没问题,如果我们需要对文件的特定文件权限,我们将使用 RUN chmod ...

在 docker 文件中手动设置它们

经过一些测试,我发现实际上 Cloud Build 不会更改文件权限。这些是从 Cloud Build 获取资源的来源保留的,但我发现 GitHub 似乎更改了这些权限。

我有 2 个文件具有 -r--r--r-- 权限,当我将它们推送到 GitHub 时,在 Cloud Build 中我可以看到这些文件具有 -rw-rw-r-- 权限。然后为了确定发生了什么,我在另一个站点克隆了该存储库,并且从该存储库中提取的文件具有权限 -rw-rw-r--。所以原因似乎是 GitHub.

正如您在回答中提到的,最好的方法是在构建时更改权限。