游乐游手机版
首页/AI热点日报/热点详情

Docker团队正探索用AI生成Dockerfile

类型:热点整理2026-06-23
Docker 团队正在探索 AI 的应用[1],本期介绍的主要内容是 AI 生成 Dockerfile 的探讨,文中示例是基于 Node js 项目。 让 ChatGPT 帮你写一个 Dockerfile,它会很耐心地询问你项目的具体信息——语言、框架、依赖管理方式等等。就像下图所示,因为我最近问

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

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

让 ChatGPT 帮你写一个 Dockerfile,它会很耐心地询问你项目的具体信息——语言、框架、依赖管理方式等等。就像下图所示,因为我最近问 ChatGPT 关于 Node.js 的问题比较多,它直接推断出这是 Node.js 项目。但如果遇到其他语言的项目,它还是会老老实实问你一遍。

Docker 团队提出一个更聪明的办法:与其让用户手动交代,不如给助手配一个工具,让它直接从项目中提取这些信息

具体怎么做?思路其实挺直白的——当助手被要求创建 Dockerfile 时,给它两条高阶指令:

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

与此同时,还需要给 LLM 配备两个函数:

  • 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 质量可能参差不齐。

为了提升生成质量,Docker 团队整理了一套 Node.js 项目 Dockerfile 的最佳实践。比如采用三段式构建: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。

来源:https://www.53ai.com/news/finetuning/2024090625487.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。