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.
正如您在回答中提到的,最好的方法是在构建时更改权限。
我正在使用 google-cloud-build
作为 CI 来测试 PR 是否破坏了构建。
构建基本上是在创建 Docker 图像。
为了减少构建时间,我正在尝试使用 dockers --cache-from
功能,但它在 COPY ...
上对我来说失败了,因为在使用 Github App trigger
时,大多数文件权限由于某种原因被更改了。
使用 Github trigger
时不会发生此问题,但我无法按照 here.
有没有办法防止云构建在使用 Github App trigger
时更改文件权限?还有其他方法可以解决这个问题吗?
目前,我们认为这没问题,如果我们需要对文件的特定文件权限,我们将使用 RUN chmod ...
经过一些测试,我发现实际上 Cloud Build 不会更改文件权限。这些是从 Cloud Build 获取资源的来源保留的,但我发现 GitHub 似乎更改了这些权限。
我有 2 个文件具有 -r--r--r--
权限,当我将它们推送到 GitHub 时,在 Cloud Build 中我可以看到这些文件具有 -rw-rw-r--
权限。然后为了确定发生了什么,我在另一个站点克隆了该存储库,并且从该存储库中提取的文件具有权限 -rw-rw-r--
。所以原因似乎是 GitHub.
正如您在回答中提到的,最好的方法是在构建时更改权限。