3

我使用atlassian 管道

有时管道会因此消息而失败

超出构建内存限制。

我还在本地运行与在管道中运行相同的 docker 映像。(我在本地运行与我在图像中声明的相同的图像bitbucket-pipelines.yml

我想要一种在本地运行我们的 docker 映像的方法,其限制与管道强制执行的相同(4gb):https ://confluence.atlassian.com/bitbucket/limitations-of-bitbucket-pipelines-827106051.html#LimitationsofBitbucketPipelines-Buildlimits

我想这样做以确保我保持在管道限制的 90% 以内。(所以 3.6GB)

这是实现这一目标的方法吗?

docker run --rm --memory=3600M --memory-swap=3600M docker-image-same-as-we-run-in-pipelines
4

1 回答 1

1

伙计,这是屁股的痛苦。我以前在你的鞋子里。问题是即使您可能处于限制范围内,管道本身也会占用一定百分比。所以我有一个 Angular 项目,它的内存几乎低于 4GB。但在管道上运行超出内存。所以我必须在管道中使用 Size: 2x 参数,以便为管道分配双倍的内存。唯一的缺点是在计费时构建分钟数被计为双倍。因此,如果您运行它 4 分钟,它会从您的配额中按 8 分钟计费。

如果 docker 有另一个解决方案,那么我不知道,但要运行该解决方案,您可以这样做。或者还有另一种方法,最近 Atlassian 引入了 Runners 概念,您可以在其中附加本地运行器来构建您的管道,这样您就可以利用您的硬件并免于从 Atlassian 收取费用。我还没有尝试过。 https://support.atlassian.com/bitbucket-cloud/docs/runners/

于 2021-08-26T06:25:47.487 回答