BẢNG GIÁBLOG
Ngôn ngữ
Helipack Engine

Dockerfile Không cần viết.

Helipack là engine build nội bộ của Helipod, nhận diện framework từ repository của bạn và tạo Dockerfile sẵn sàng cho production, với multi-stage build, build secrets và các best practice bảo mật.

Helipack EngineDemo
1
2
3
4
Nhận diện runtime
composer.json
artisan
package.json
yarn.lock
Dockerfile (được tạo tự động)
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"]

Vì sao quan trọng

Những gì bạn nhận được

Nhận diện runtime

Helipack quét repository và nhận diện framework từ tệp cấu hình, dependency và cấu trúc project.

Multi-stage build

Dockerfile được tạo dùng multi-stage build để giảm thiểu kích thước image production.

Build secrets

Biến môi trường dùng khi build không được lưu trong layer của image nhờ BuildKit secrets.

Bảo mật tích hợp sẵn

Người dùng non-root, tiến trình init tini và layer caching tối ưu, tất cả được thiết lập tự động.

Nhận biết framework

FrankenPHP cho Laravel 8.2+, chế độ standalone cho Next.js, gunicorn cho Python, tối ưu theo từng framework.

Cache tối ưu

Các layer được sắp xếp theo tần suất thay đổi. Dependency ít thay đổi, mã nguồn thay đổi thường xuyên, nên build rất nhanh.

Các bước

Cách hoạt động

  1. 01

    Kết nối repository

    Kết nối repo GitHub/GitLab. Helipack bắt đầu quét các tệp trong repository.

  2. 02

    Nhận diện framework

    Helipack đọc composer.json, package.json, requirements.txt và các tệp cấu hình để nhận diện framework.

  3. 03

    Tạo Dockerfile

    Dockerfile multi-stage tối ưu được tạo tự động, với các best practice bảo mật.

  4. 04

    Build và triển khai

    Docker image được build với cache tối ưu, rồi triển khai lên production.

FAQ

Câu hỏi thường gặp

Helipack hỗ trợ những framework nào?
Helipack hỗ trợ Node.js (Next.js, Nuxt, Remix, Astro, Express, NestJS), PHP (Laravel, Symfony), Python (Django, FastAPI, Flask) và Go (Gin, Echo). Với các ngôn ngữ khác (Rust, Ruby, Java), hãy dùng Dockerfile riêng.
Làm sao xem Dockerfile được tạo?
Xem trong Build Logs khi triển khai. Hoặc khi phát triển cục bộ, đặt HELIPACK_KEEP_DOCKERFILE=1 trước khi build, Helipack sẽ lưu tệp dưới tên .helipack.Dockerfile.
Làm sao ghi đè cấu hình Helipack?
Tạo tệp helipack.json ở thư mục gốc của repository để ghi đè lệnh build, lệnh start, port, health check, package và nhiều thứ khác. Đọc hướng dẫn đầy đủ trên blog.
Helipack có an toàn cho production không?
Có. Mọi Dockerfile đều dùng BuildKit secrets (biến môi trường không được lưu trong layer), người dùng non-root và tiến trình init tini để tắt êm.

Sẵn sàng dùng thử?

Đăng nhập bằng Google hoặc GitHub, kết nối repository và thanh toán từ số dư Rupiah. Không cần thẻ tín dụng.
WhatsApp