Docker 团队正在探索用 AI 生成 Dockerfile


Docker 团队正在探索 AI 的应用[1],本期介绍的主要内容是 AI 生成 Dockerfile 的探讨,文中示例是基于 Node.js 项目。

当我们让 ChatGPT 为你的项目写一个 Dockerfile 时,它会与你进行对话,要求你提供项目的某些详细信息。

如下图所示,因为我这个近期问 ChatGPT Node.js 相关问题多些,因此 ChatGPT 也推断出了是 Node.js 类项目,但如果是需要为一个其它语言的项目写 Dockerfile 呢?

Docker 团队正在探索用 AI 生成 Dockerfile

Docker 团队提出,我们也可以为助手配备一个工具,直接从项目中提取这些信息,而不是询问用户

一种替代方案为:每当助手被要求创建 Dockerfile 时,给它两个高层次的指示:

  • 分析项目以确定其构建方式
  • 分析完成后,创建一个 Dockerfile 来构建该项目

此外,还为 LLM 提供了两个函数定义[2]

  • analyze_project:分析项目以确定其构建方式。
  • write_files:将一组文件写入我的项目。
[
    {
        "name""analyze_project",
        "description""Analyze a project to determine how it should be built"
    },
    {
        "name""write_files",
        "description""write a set of files to my project",
        "parameters": {
            "...""..."
        }
    }
]

通过这两个功能,助手可以直接在用户的项目中写入 Dockerfile。然而,如果没有最佳实践,实际生成的 Dockerfile 内容可能不会很理想。

为了改善生成的 Dockerfile 内容,Docker 团队提取了一些为 Node.js 项目编写 Dockerfile 的最佳实践。例如,使用 3 个阶段 "deps""build"Scout

以下为 Docker 团队助手生成的 Dockerfile 内容

# Stage 1 - Downloading dependencies
FROM node:22-slim AS deps # 选择基础镜像时,获取推荐的标签
WORKDIR /usr/src/app
COPY package*.json ./
RUN --mount=type=cache,target=/root/.npm npm ci --omit=dev

# Stage 2 - Building application
FROM deps AS build
RUN --mount=type=cache,target=/root/.npm npm ci && npm build

# Stage 3 - Using a recommended base image from Scout
FROM node:22-slim
WORKDIR /usr/src/app
COPY --from=deps /usr/src/app/node_modules ./node_modules
COPY --from=build /usr/src/app/dist ./dist
CMD [ "npm""start" ]

AI 时代,大家都在探索相关的应用场景。Docker 团队也在探索让生成式 AI 助手提高生成 Dockerfile 内容的能力,期待这个小助手能早日来临,实现根据项目自动分析来生成一份最佳实践的 Dockerfile。

前沿技术提示词技巧新闻资讯

从案例分析到客户沟通:AI提示词如何优化律师工作流程?

2026-4-1 22:40:08

前沿技术大模型技术新闻资讯

Claude 史诗级进化:直接在对话框里回 Slack、画 Figma,工作流彻底变了

2026-4-1 23:14:26

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
搜索