如何修改 dask worker 使用的 docker 图像中的库版本?

How can I modify library versions in the docker image used by dask workers?

我正在尝试 运行 在 AWS Fargate 集群上使用 Dask 进行分布式计算(使用 dask.cloudprovider API),我 运行 正在完全相同问题为 this question. Based on the partial answers to the linked question, and on things like this,我严重怀疑这是因为我的 worker 中的 pandas 版本已过时;确实 official Dask Dockerfile 指定 pandas.

的旧版本

相比之下,当我 运行 我的本地计算(使用 distributed.LocalCluster)和 1.2.2 的 pandas 版本时,它工作正常。顺便说一句,它是对 Dask DataFrame 上的 categorize 方法的调用,它触发了 Fargate 集群案例中的错误。

我想做的解决方法是简单地在部署给工作人员的图像中为自己指定 pandas 的版本,要么自己构建自定义图像 + 将其放在图像存储库中 + 有工人使用它,或通过其他方法。有办法实现吗?

一个可能有效的选项是传递环境变量,例如 EXTRA_CONDA_PACKAGESEXTRA_PIP_PACKAGES,以指示您要安装的包版本,看起来 dask.cloudprovider 看到 here, and also noted in the dask-docker repo 你链接了。它们将通过参数 environment.

作为字典传递

另一种选择是构建和推送您自己提到的图像,dask.cloudprovider 似乎也支持该图像,如 here 所示。图像标签将通过 image 参数传递给集群构造器。

链接的选项适用于 ECSClusterFargateCluster 继承自 here