如果定义文件未更改,是否有更好的方法避免重建奇点图像?

Is there a better way avoid rebuilding a Singularity image if the definition file hasn't changed?

我正在 CI/CD 管道中构建 Singularity 图像。如果定义文件没有改变,我想避免重建图像。到目前为止,我能看到的最好的方法是使用类似这样的方法检查更改:

if diff my_img.def <(singularity inspect -d my_img.sif) > /dev/null; then
    ... do something ...
fi

是否有内置或更好的方法来执行此操作?

根据您使用的 CI 软件,只有当特定文件发生更改时,您才能执行某些作业 运行。我使用 Gitlab CI,它有 only/except:changes 规则。大多数其他 CI 平台可能有类似的东西,但你必须检查他们的文档。

否则,您的解决方案可能是最简单的。