# @flydotio/dockerfile 中文文档

规范地址：https://npmcn.com/package/%40flydotio/dockerfile/

版本：0\.7\.15
npm 元数据更新时间：2026-10-29T09:24:34.846Z
中文译文更新时间：2026-11-15T02:50:22.074Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40flydotio/dockerfile
原文对照：https://npmcn.com/package/%40flydotio/dockerfile/?lang=original
项目主页：https://github.com/fly-apps/dockerfile-node#readme
源码仓库：https://github.com/fly-apps/dockerfile-node

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：90.6 kB，10 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=16\.0\.0
- 运行依赖：6 个
- 首次发布：2023-04-25T10:37:13.893Z
- 最新版本发布：2026-10-28T18:56:18.688Z
- 近 30 天下载量：514250（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：65（近 12 个月 5 个）

## 中文简介

Docker 文件生成器

## 安装

```sh
npm install @flydotio/dockerfile
```

也可以使用：`pnpm add @flydotio/dockerfile`、`yarn add @flydotio/dockerfile`、`bun add @flydotio/dockerfile`

## README

## 概览

提供一个节点.js生成器来生成多克文件和相关文件. 它旨在支持列出其附属关系的任何框架,包括: `start` 脚本在 `package.json`,可选择包括 `build` 剧本.

见 [测试](https://npmcn.com/package/%40flydotio/dockerfile/test) 根据相关的 `package.json` 并锁定文件.

见 [博客文章](https://fly.io/blog/flydotio-heart-js/) 更多信息.

## 使用量

要运行一次:

```
npx --yes @flydotio/dockerfile@latest
bunx --bun @flydotio/dockerfile@latest
```

或者用你最喜欢的软件包管理器安装:

```
bun add -d @flydotio/dockerfile
npm install @flydotio/dockerfile --save-dev
pnpm add -D @flydotio/dockerfile
yarn add @flydotio/dockerfile --dev
```

一旦安装, 您可以使用 `npx dockerfile` 用于Node.js应用程序或 `bunx --bun dockerfile` bun应用程序.

选项在运行之间被保存 `package.json`。要反转布尔选项,请从选项名称中添加或删除一个无前缀.

### 选项 :

-   `--alpine` - 使用时 [阿尔卑斯山](https://www.alpinelinux.org/) 作为基础图像
-   `--build=CMD` - 用于构建应用程序的命令.
-   `--cache` - 利用建筑缓存来加快建造
-   `--caddy` - 为静态场地服务(静态Astro) [凯蒂](https://caddyserver.com/) 而不是nginx。 .
-   `--cmd=CMD` - 用于多克文件的CMD
-   `--defer-build` - 可能需要,当你的建设步骤需要 获取在图像构建时间没有的秘密。 图像较大,部署较慢.
-   `--dev` - 包括 `devDependencies` 在制作图像中.
-   `--distroless` - 使用时 [无双](https://github.com/GoogleContainerTools/distroless) 降低图像大小的基础图像
-   `--entrypoint` - 用于多克文件的ENTRYPOINT
-   `--ignore-scripts` - 不执行工程中定义的任何脚本 `package.json` 及其依附关系.
-   `--force` - 覆盖已存在的文件
-   `--legacy-peer-deps` - 说吧 [忽略对等依赖](https://docs.npmjs.com/cli/v7/using-npm/config#legacy-peer-deps)。 。 。 .
-   `--litefs` - 配置和启用 [升数](https://fly.io/docs/litefs/)。 。 。 .
-   `--litestream` - 配置和启用 [升流线](https://litestream.io/)。 。 。 .
-   `--nginxRoot=DIR` - 通过给定目录服务静态文件 [阴性](https://www.nginx.com/)。 。 。 .
-   `--link` - 添加内容 [\--链接](https://docs.docker.com/engine/reference/builder/#copy---link) 给缔约方会议的声明。 一些工具,包括: [建设](https://www.redhat.com/en/topics/containers/what-is-buildah))或(或) [库克](https://docs.docker.com/build/buildkit/) 不正确支持此特性.
-   `--port=n` - 曝光端口(默认可能因框架而异,但否则 `3000`(中文(简体) )
-   `--swap=n` - 分配交换空间。 见 [falloc 选项](https://man7.org/linux/man-pages/man1/fallocate.1.html#OPTIONS) 用于后缀
-   `--windows` - 使Dockerfile为可能已经设置的Windows用户工作 `git config --global core.autocrlf true`。 。 。 .

### 添加软件包/环境变量/构建参数:

无法通过扫描您的应用程序来确定您的全部需求 。 例如,我想补充: [维姆](https://www.vim.org/) 财务报告和审定财务报表 [道具](https://packages.debian.org/bullseye/procps)。 。 。 .

-   `--add package...` - 增加一个或多个debian软件包
-   `--arg=name:value` - 添加一个 [构建参数](https://docs.docker.com/engine/reference/builder/#arg)
-   `--env=name:value` - 增加环境变量
-   `--remove package...` - 从“待添加”列表中删除软件包

参数和环境变量可以通过添加来适应特定的构建阶段 `-base`, (中文(简体) ), `-build`,或 `-deploy` 旗名后( 例如) `--add-build freetds-dev --add-deploy freetds-bin`) (中文(简体) ). 如果没有找到这样的后缀, 参数的默认值为 `-base`,则内存的默认值是 `-deploy`。去除参数或环境变量时,将数值留空(例如 `--env-build=PORT:`) (中文(简体) ).

## 建立秘密

使用数据库生成静态站点等技术可能需要在建设时访问机密. 要做到这一点,你需要 _挂载_ 秘诀:

-   `--mount-secret=name` - 添加 _名称_ 至运行构建脚本时要挂载的秘密列表
-   `--unmount-secret=name` - 删除 _名称_ 从运行构建脚本时要挂载的秘密列表中

见 [揭发建筑的秘密](https://docs.docker.com/engine/reference/commandline/buildx_build/#secret) 以实例说明如何将秘密传递给一个嵌入式建筑.

## 高级定制

可能有时 特征检测加旗帜还不够 例如,您可能希望配置和运行多个进程.

-   `--instructions=path` - 在最后文件中插入一个嵌入文件碎片.

比如环境变量,软件包,和构建参数, `--instructions` 可以通过增加 `-base`, (中文(简体) ), `-build`,或 `-deploy` 在旗帜名称后,默认为 `-deploy`。 。 。 .

## 平台特定处理

除了创建多克文件和相关文物, `dockerfile-node` 可以运行平台特定处理. 目前第一个也是唯一利用这个平台的自然是fly.io.

如果,并且只有, `flyctl` 已安装,是路径的一部分,并且存在有效的 `fly.toml` 当前目录中的文件, dockerfile-node 将:

-   为 sqlite 配置并创建音量3
-   如果选中此选项, 设置交换文件大小
-   副领事
-   设置重混和 adonis 应用程序的秘密
-   初始化 git
-   定义中转应用程序,如果其中提及 `.github/workflows/deploy.yml`

## 测试

仅援引 `npm test` 将运行所有定义的测试。 临Τ `npm run eslint` 会运行斯林特.

目前的集成测试策略是对照各种配置运行多克文件生成器,并比较生成的文物与预期结果. `ARG` 数值 `Dockerfiles` 在比较前蒙上面具.

为了协助这一进程,可以自动获取测试结果。 这在增加新的测试和作出影响许多测试的改变时是有用的. 确保检查输出( 例如, 通过使用) `git diff`) 承诺之前.

```
npm run test:capture
```

为了进行单一测试(或测试图案),直接使用 `grep` 选项.

```
npx mocha --grep swap
```

此外,每个测试目录中的每个输出都可以被直接测试,以确保它们能够成功通过运行在必要的构建参数中传递的嵌入器构建目录来构建. 例如:

```
docker buildx build . --build-arg NODE_VERSION=18
```

## 常见问题

### @flydotio/dockerfile 是什么？

Docker 文件生成器

### 如何安装 @flydotio/dockerfile？

在项目目录运行 npm install @flydotio/dockerfile，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 dockerfile，可以用 npx dockerfile 直接运行。

### @flydotio/dockerfile 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/flydotio\_\_dockerfile 是否存在。

### @flydotio/dockerfile 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @flydotio/dockerfile 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=16\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @flydotio/dockerfile 可以商用吗？

@flydotio/dockerfile 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @flydotio/dockerfile 的下载量有多少？

根据 npm 官方下载统计，@flydotio/dockerfile 在 2026/10/15 – 2026/11/13 这 30 天内被下载 514,250 次，日均约 17,142 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @flydotio/dockerfile 还在维护吗？

最新版本 0\.7\.15 发布于 2026/10/29（18 天前）；至今共发布 65 个版本，其中过去 12 个月发布了 5 个；首次发布于 2023/04/25。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

