价格博客
语言
Helipack 引擎

Dockerfile 无需手写。

Helipack 是 Helipod 的内部构建引擎,它从你的仓库识别框架并生成可用于生产环境的 Dockerfile,包含多阶段构建、构建密钥和安全最佳实践。

Helipack 引擎演示
1
2
3
4
运行时识别
composer.json
artisan
package.json
yarn.lock
Dockerfile(自动生成)
FROM dunglas/frankenphp:latest-php8.3-alpine AS base
WORKDIR /app
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
 
FROM base AS deps
COPY composer.json composer.lock ./
RUN composer install --no-dev --prefer-dist
 
FROM base AS runner
COPY . .
COPY --from=deps /app/vendor ./vendor
RUN composer dump-autoload --optimize
 
RUN --mount=type=secret,id=build_env \
php artisan config:cache && php artisan route:cache
 
EXPOSE 8000
CMD ["frankenphp", "run"]

为什么重要

你将获得

运行时识别

Helipack 扫描仓库,根据配置文件、依赖和项目结构识别框架。

多阶段构建

生成的 Dockerfile 使用多阶段构建,以最小化生产镜像体积。

构建密钥

借助 BuildKit secrets,构建期间使用的环境变量不会存储在镜像层中。

内置安全防护

非 root 用户、tini 初始化进程和优化的层缓存,全部自动配置。

感知框架

Laravel 8.2+ 使用 FrankenPHP,Next.js 使用 standalone 模式,Python 使用 gunicorn,按框架优化。

最优缓存

各层按变更频率排列。依赖很少变化,源代码经常变化,因此构建很快。

步骤

工作原理

  1. 01

    连接仓库

    连接你的 GitHub/GitLab 仓库。Helipack 开始扫描仓库中的文件。

  2. 02

    识别框架

    Helipack 读取 composer.json、package.json、requirements.txt 和配置文件来识别框架。

  3. 03

    生成 Dockerfile

    自动生成遵循安全最佳实践的最优多阶段 Dockerfile。

  4. 04

    构建并部署

    以最优缓存构建 Docker 镜像,然后部署到生产环境。

常见问题

常见问题

Helipack 支持哪些框架?
Helipack 支持 Node.js(Next.js、Nuxt、Remix、Astro、Express、NestJS)、PHP(Laravel、Symfony)、Python(Django、FastAPI、Flask)和 Go(Gin、Echo)。其他语言(Rust、Ruby、Java)请使用你自己的 Dockerfile。
如何查看生成的 Dockerfile?
部署时查看构建日志。或者在本地开发时,构建前设置 HELIPACK_KEEP_DOCKERFILE=1,Helipack 会将文件保存为 .helipack.Dockerfile。
如何覆盖 Helipack 配置?
在仓库根目录创建 helipack.json 文件,即可覆盖构建命令、启动命令、端口、健康检查、软件包等。完整指南请阅读博客。
Helipack 可用于生产环境吗?
可以。所有 Dockerfile 都使用 BuildKit secrets(环境变量不会存储在镜像层中)、非 root 用户,以及用于优雅关闭的 tini 初始化进程。

准备好试试了吗?

使用 Google 或 GitHub 登录,连接仓库,并用 Rupiah 余额付款。无需信用卡。
WhatsApp