一句话:提出 Modus——一种用于构建容器镜像的 Datalog 方言,以约束构建参数交互。
容器镜像通过打包依赖来共享和部署软件。Docker/Kubernetes 等工具依据 Dockerfile 等构建语言从镜像启动容器。构建镜像涉及 OS、应用版本等多个参数,这些参数会相互作用,设置一个可能限制另一个;Dockerfile 缺乏具体化并约束这些交互的能力,迫使开发者为每种工作流编写构建脚本,并催生模板或领域特定框架等临时方案,既冗长又混合语言,损害性能且难以维护。为此,论文提出 Modus——一种用于构建容器镜像的 Datalog 方言,但摘要未报告具体实现与评估结果。
Containers help share and deploy software by packaging it with all its dependencies. Tools, like Docker or Kubernetes, spawn containers from images as specified by a build system’s language, such as Dockerfile. A build system takes many parameters to build an image, including OS and application versions. These build parameters can interact: setting one can restrict another. Dockerfile lacks support for reifying and constraining these interactions, thus forcing developers to write a build script per workflow. As a result, developers have resorted to creating ad-hoc solutions such as templates or domain-specific frameworks that harm performance and complicate maintenance because they are verbose and mix languages.