当前位置: 首页 > article >正文

Dockershrink 开源的 AI 助手(程序包),可减小应用程序的 Docker 镜像的大小

一、软件介绍

文末提供程序包及源码下载

Dockershrink 是一个 开源的AI 驱动的命令行工具,可帮助您减小 Docker 镜像的大小。它将算法分析的强大功能与生成式 AI 相结合,将最先进的优化应用于您的图像配置 ,Dockershrink 可以自动应用多阶段构建等技术,切换到 Lighter 基础镜像(如 alpine)并运行依赖项检查。目前,该工具仅支持 NodeJS 应用程序。

二、软件特点

  • 为新项目生成优化的 Docker 映像定义(Dockerfile 和 .dockerignore)
  • 通过包含最佳实践来优化现有映像定义,以避免膨胀。
  • 在开发或生产环境中使用容器的每个组织都了解在其基础设施中管理数百甚至数千个臃肿的 Docker 镜像的痛苦。
  • 高昂的数据存储和传输成本、较长的构建时间、生产力不足的开发人员 - 我们都见过。
  • 对于像Nodejs和Python这样的解释语言来说,这个问题变得更加痛苦和昂贵。用这些语言编写的应用程序需要将解释器及其所有依赖项打包在其容器镜像中,从而显著增加其大小。
  • 但并不是每个人都意识到,仅仅通过实施一些基本技术,他们就可以将 1GB 的 Docker 镜像的大小减少到 100 MB!
  • (我还制作了一个关于如何执行此作的视频。
  • 想象一下存储和数据传输成本的节省,构建时间的减少以及开发人员🤯的生产力提升
  • Dockershrink 旨在自动应用高级优化技术,因此工程师不必在上面浪费时间,并且组织仍然可以节省💰

三、安装

Dockershrink 作为独立的二进制文件提供。

您可以从 Releases 页面下载它,也可以使用 Homebrew 来安装它:

$ brew install duaraghav8/tap/dockershrink

用法

导航到 Node.js 项目的根目录并调用 dockershrink:

# To optimize existing Docker-related files
$ dockershrink optimize

# To generate new Docker files
$ export OPENAI_API_KEY=...
$ dockershrink generate

Dockershrink 会创建一个新目录,其中包含它生成的文件。默认情况下,此目录为 dockershrink.out .

有关命令的详细信息,请运行

$ dockershrink help optimize
$ dockershrink help generate

您还可以使用该 --debug 选项获取 DEBUG 日志。这些在故障排除期间特别有用。

$ dockershrink generate --debug

四、使用 AI 功能

 注意

使用 AI 功能对于 “optimize” 是可选的(但强烈建议),对于 “generate” 是必需的。

如果要启用 AI,则必须提供您的 OpenAI API 密钥。

因此,即使 Dockershrink 本身是免费的,使用 openai 也可能会给您带来一些费用。

dockershrink optimize --openai-api-key <your openai api key>

# Alternatively, you can supply the key as an environment variable
export OPENAI_API_KEY=<your openai api key>
dockershrink generate

 注意

Dockershrink 不存储您的 OpenAI API 密钥。

因此,每次希望 Dockershrink 使用它时,都必须提供密钥。这是为了避免任何意外费用。

先决条件

  • 将此存储库克隆到本地计算机上。
  • 确保你的系统上安装了 Golang(至少是 1.23 版)
  • 确保您的系统上安装了 Docker,并且 Docker 守护程序正在运行。
  • 安装 GoReleaser(至少版本 2.4)

 发展

  1. 克隆此存储库后,在项目的根目录中导航
  2. 运行测试以确保一切正常
go test ./...
  1. 更改代码,添加相关测试。
  2. 整理并确保所有测试都通过
go mod tidy
go mod vendor
go test ./...

 为本地测试而构建

# Single binary
goreleaser build --single-target --clean --snapshot

# All binaries
goreleaser release --snapshot --clean

 创建新版本

  1. 使用新版本创建 Git 标签
git tag -a v0.1.0 -m "Release version 0.1.0"
git push origin v0.1.0
  1.  释放
# Make sure GPG is present on your system and you have a default key which is added to Github.

# set your github access token
export GITHUB_TOKEN="<your GH token>"

goreleaser release --clean

这将在 Releases 下创建一个新版本,并通过 Homebrew 提供它。

五、软件下载

夸克网盘分享

GitHub作者地址:https://github.com/duaraghav8/dockershrink

本文信息均来源与GitHub作者地址


http://www.kler.cn/a/571991.html

相关文章:

  • STM32F103C8T6 基于 TB6612 驱动 12V 编码电机的教程
  • 【高并发内存池】项目介绍 + 定长内存池 + 整体框架设计
  • Vue 3 核心 API 和函数
  • 科技风杂志科技风杂志社科技风编辑部2025年第5期目录
  • 如何在 Windows 和 Linux 下查看 MD5——原理、作用及完整性验证指南
  • JavaWeb学习日记(十三)Springboot原理+Bean管理
  • Hive大表和小表查询优化方案探索
  • HTTP 状态代码 501 502 问题
  • Windows 11 smb 共享文件, 新电脑需要用户名和密码
  • 操作系统启动——前置知识预备
  • 《OpenCV》——dlib(人脸应用实例)
  • 机器学习相关知识概述
  • Leetcode 215 数组中的第K个最大元素
  • Libgdx游戏开发系列教程(4)——显示中文文字
  • Kubernetes教程(三)Docker容器命令
  • 股市现期驱动因子
  • go:windows环境下安装Go语言
  • AWS中使用CloudFront分发API Gateway
  • 计算机毕业设计SpringBoot+Vue.js工作流程管理系统(源码+文档+PPT+讲解)
  • 迷你世界脚本状态接口:Buff