Dockerfile 格式化工具
格式化 Dockerfile 并获取最佳实践和 lint 建议。
你的 Dockerfile 在浏览器中本地格式化和检查,你粘贴的任何内容都不会上传到任何服务器。
在管理构建上下文?用 Gitignore 生成器生成一个 .gitignore。
关于 Dockerfile 格式化工具
这款 Dockerfile 格式化工具一次性清理你的 Dockerfile,并对照 Docker 最佳实践进行检查。粘贴一个 Dockerfile,它会将每个指令关键字归一化为大写、修剪尾随空白,并折叠重复的空行,使文件读起来风格一致。作为一款轻量级的 Dockerfile 检查工具,它还会标记常见问题:未固定的基础镜像标签、本该用 COPY 的 ADD、缺少 --no-install-recommends 的 apt-get 安装、残留的 apt 缓存、sudo 用法、RUN 中的 cd、可合并的 RUN 层,以及以 root 身份运行的容器。它专为想在线格式化 Dockerfile 并在提交前按照 Dockerfile 最佳实践收紧镜像构建的开发者和 DevOps 工程师打造。所有处理都在你的浏览器本地完成,因此你粘贴的 Dockerfile 在你的机器上处理,数据不会离开你的设备。
功能特性
- 将每个 Dockerfile 指令(FROM、RUN、COPY、CMD 等)大写以保持风格一致
- 修剪尾随空白并折叠重复的空行
- 当基础镜像使用 :latest 或没有固定标签时发出警告
- 为本地文件建议用 COPY 替代 ADD
- 推荐 --no-install-recommends 和清理 apt 缓存以缩小镜像
- 标记 sudo 用法和未设置 USER 而以 root 运行的容器
- 检测可合并以减少层数的连续 RUN 步骤
- 用 WARN 或 TIP 徽章和行号显示每条建议
如何使用 Dockerfile 格式化工具
- 将你的 Dockerfile 粘贴到输入框。
- 在已格式化 Dockerfile 面板中查看指令已大写的整洁输出。
- 查看输出下方的最佳实践检查,了解 WARN 和 TIP 建议。
- 应用你想要的修复,然后复制或将结果下载为 Dockerfile。
示例
输入
from node:latest
run apt-get update && apt-get install curl
copy . .
cmd ["node","app.js"]
输出
FROM node:latest
RUN apt-get update && apt-get install curl
COPY . .
CMD ["node","app.js"]
指令被大写并整理;检查面板仍会警告固定 node 标签、添加 --no-install-recommends 并设置非 root 的 USER。
常见错误与故障排除
- 输出看起来与你的输入完全相同。 — 格式化工具只归一化大小写、空白和空行。如果你的指令本就大写且整洁,便无需更改。请改为查看最佳实践面板的建议。
- 尽管你在下载 URL 或解压归档文件,检查仍标记了 ADD。 — 对于带 http(s) URL 的 ADD,以及 .tar/.gz/.tgz/.bz2/.xz/.zip 归档文件,会跳过“COPY 优于 ADD”的警告。对于普通本地文件,请切换到 COPY 以清除该警告。
- 即使你已切换到非 root 用户,仍出现 USER 警告。 — 该检查会在文件中任何位置查找 USER 指令。请确保该行以 USER 关键字开头且未被注释,以便被识别。
- 行延续或不寻常的行未被改动。 — 无法识别为指令的行,例如反斜杠延续行,会被刻意原样保留,以免破坏多行 RUN 命令。
常见问题
- 什么是 ArrayKit Dockerfile 格式化工具,它会改动什么?
- 它是一款浏览器内 Dockerfile 格式化工具,会大写每个指令关键字、修剪尾随空白,并将多个空行折叠为一个。它不会重写或重排你的命令,因此你的构建逻辑保持完好。
- 如何用本工具按最佳实践检查我的 Dockerfile?
- 只需粘贴你的 Dockerfile。在格式化的同时,它会检查未固定的基础标签、ADD 与 COPY、apt-get 标志与缓存清理、sudo 用法、RUN 中的 cd、可合并的 RUN 层,以及以 root 运行,并以带行号的 WARN 和 TIP 建议显示。
- 为什么 Dockerfile 格式化工具警告我固定基础镜像标签?
- 使用 :latest 或不带标签意味着当基础镜像更新时,你的构建可能意外改变。固定一个特定标签,例如 node:20-alpine,能让构建可复现。
- 我可以下载格式化后的 Dockerfile 吗?
- 可以,你可以直接从格式化输出面板复制输出,或将其下载为纯 Dockerfile。
- 使用此格式化工具时,我的 Dockerfile 会被上传到任何地方吗?
- 不会。Dockerfile 格式化工具完全在你的浏览器中运行,你粘贴的文件在本地处理,因此你的数据不会离开你的设备,也不会发送到任何服务器。
相关工具
全部 ArrayKit 工具