ICSE docker related research

2024-05-12 19:44
文章标签 docker research related icse

本文主要是介绍ICSE docker related research,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ICSE 2024

Empirical Study of the Docker Smells Impact on the Image Size

Docker 气味对镜像大小影响的实证研究

Docker 是一种广泛采用的打包和部署应用程序的工具,它利用 Dockerfile 来构建镜像。然而,创建最佳的 Dockerfile 可能具有挑战性,通常会导致“Docker 异味”或偏离最佳实践。本文研究了 14 种 Docker 气味对 Docker 镜像大小的影响。为了评估 Docker 气味的大小影响,作者从 11 313 个开源 Docker 文件中识别并修复了 16 145 个 Docker 气味。作者观察到,气味导致每个有气味的镜像平均增加 48,06 MB (4,6 %)。根据气味类型,尺寸增加最多可达 10%,对于某些特定情况,气味可以代表镜像尺寸的 89%。有趣的是,最有影响力的气味与常见的包管理器有关,并且相对容易修复。为了收集开发人员对 Docker 异味大小影响的看法,作者提交了 34 个修复异味的拉取请求,并向开发人员报告了它们对 Docker 镜像的影响。 26/34 (76.5%) 的拉取请求已合并,有助于节省 3.46 GB (16.4%)。即使拉取请求被拒绝,开发人员的评论也表明了他们对解决这些 Docker 异味的积极​​兴趣。

ICSE 2021

Shipwright: A Human-in-the-Loop System for Dockerfile Repair

Shipwright:用于 Dockerfile 修复的人机交互系统

Docker 是一种轻量级操作系统级虚拟化工具。 Docker 镜像是通过执行构建来创建的,由称为 Dockerfile 的源级工件控制。作者在 GitHub 上研究了 Dockerfile,大吃一惊的是,超过四分之一的受检查 Dockerfile 无法构建(从而无法生成镜像)。为了解决这个问题,本文提出了 SHIPWRIGHT,这是一种人机交互系统,用于查找损坏的 Dockerfile 的修复。 SHIPWRIGHT 使用 BERT 语言模型的修改版本来嵌入构建日志并对损坏的 Dockerfile 进行集群。使用这些集群和基于搜索的程序,本文能够设计 13 条规则来自动修复 Dockerfile。在 SHIPWRIGHT 的帮助下,作者向 GitHub 项目提交了 45 个存在损坏 Dockerfile 的 Pull 请求(接受率为 42.2%)。此外,在对后来修复的损坏的 Dockerfile 进行“时间旅行”分析时,发现在研究的 22.77% 的案例中,SHIPWRIGHT 提出的修复相当于人类编写的补丁。最后,作者将当前工作与最近最先进的静态 Dockerfile 分析进行了比较,发现虽然静态工具在检查的 20.6-33.8% 的文件中检测到了可能导致构建失败的问题,但 SHIPWRIGHT 能够检测 73.25% 的文件中可能存在的问题,此外还为 18.9% 的文件提供自动修复。

ICSE 2020

Learning from, understanding, and supporting DevOps artifacts for docker

学习、理解和支持 Docker 的 DevOps 工件

随着 DevOps 工具和框架的使用不断增加,对支持代码以外的工具和技术的需求也不断增加。目前最先进的静态开发人员辅助工具(例如 Docker)仅限于浅层语法验证。作者确定了学习、理解和支持开发人员编写 DevOps 工件领域的三个核心挑战:(i) DevOps 工件中的嵌套语言,(ii) 规则挖掘,以及 (iii) 缺乏基于语义规则的分析。为了应对这些挑战,作者引入了 binnacle 工具集,它能够摄取 900,000 个 GitHub 存储库。

作者以 Docker 为重点,提取了大约 178,000 个独特的 Dockerfile,并确定了由 Docker 专家编写的黄金 Dockerfile 集。作者通过一种称为分阶段解析的技术,将 AST 中有效且不可解释的节点数量减少了 80% 以上,从而解决了挑战 (i) 。为了应对挑战 (ii),本文引入了一种新颖的规则挖掘技术,能够恢复作者策划的基准中三分之二的规则。通过这种自动挖掘,能够恢复手动规则收集期间未找到的 16 条新规则。为了解决挑战 (iii),本文从黄金集中文件的提交中手动收集了一组 Dockerfile 规则。这些规则封装了最佳实践,避免 docker 构建失败,并改善映像大小和构建延迟。作者创建了一个使用这些规则的分析器,发现平均而言,GitHub 上的 Dockerfile 违反规则的频率是黄金集中的 Dockerfile 的五倍。作者还发现工业 Dockerfile 的表现并不比来自 GitHub 的 Dockerfile 好。

binnacle 中学到的规则和分析器可用于帮助 IDE 中的开发人员创建 Dockerfile,并以事后方式识别现有 Dockerfile 中的问题并改进现有 Dockerfile。

这篇关于ICSE docker related research的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/983564

相关文章

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

Docker安装MySQL镜像的详细步骤(适合新手小白)

《Docker安装MySQL镜像的详细步骤(适合新手小白)》本文详细介绍了如何在Ubuntu环境下使用Docker安装MySQL5.7版本,包括从官网拉取镜像、配置MySQL容器、设置权限及内网部署,... 目录前言安装1.访问docker镜像仓库官网2.找到对应的版本,复制右侧的命令即可3.查看镜像4.启

debian12安装docker的实现步骤

《debian12安装docker的实现步骤》本文主要介绍了debian12安装docker的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录步骤 1:更新你的系统步骤 2:安装依赖项步骤 3:添加 docker 的官方 GPG 密钥步骤

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

关于Docker Desktop的WSL报错问题解决办法

《关于DockerDesktop的WSL报错问题解决办法》:本文主要介绍关于DockerDesktop的WSL报错问题解决办法的相关资料,排查发现是因清理%temp%文件夹误删关键WSL文件,... 目录发现问题排查过程:解决方法其实很简单:重装之后再看就能够查到了:最后分享几个排查这类问题的小www.cp