Тип сборки
Узнайте о различных типах сборки, доступных в Skitflow, включая Nixpacks, Dockerfile и Buildpack.
Skitflow предлагает три различных типа сборки для развертывания приложений, каждый из которых подходит для разных потребностей и предпочтений разработки.
Nixpacks
Это тип сборки по умолчанию в Skitflow. При выборе Nixpacks Skitflow собирает ваше приложение как Nixpack, что оптимизировано для простоты использования и эффективности.
Nixpacks предоставляет множество переменных для настройки через переменные окружения. Все эти переменные имеют префикс NIXPACKS_, их можно определить во вкладке Environment Variables.
| Переменная | Описание |
|---|---|
NIXPACKS_INSTALL_CMD | Переопределить команду установки |
NIXPACKS_BUILD_CMD | Переопределить команду сборки |
NIXPACKS_START_CMD | Переопределить команду запуска контейнера |
NIXPACKS_PKGS | Добавить дополнительные Nix-пакеты |
NIXPACKS_APT_PKGS | Добавить дополнительные Apt-пакеты (через запятую) |
NIXPACKS_LIBS | Добавить дополнительные Nix-библиотеки |
NIXPACKS_INSTALL_CACHE_DIRS | Добавить дополнительные директории для кэширования на этапе установки |
NIXPACKS_BUILD_CACHE_DIRS | Добавить дополнительные директории для кэширования на этапе сборки |
NIXPACKS_NO_CACHE | Отключить кэширование для сборки |
NIXPACKS_CONFIG_FILE | Расположение файла конфигурации Nixpacks относительно корня приложения |
NIXPACKS_DEBIAN | Включить базовый образ Debian, используется для поддержки OpenSSL 1.1 |
Если вам нужно больше контроля над процессом Nixpacks, вы можете создать файл nixpacks.toml в корне вашего приложения — подробнее читайте здесь: Nixpacks Configuration.
Nixpacks поддерживает монорепозитории, такие как NX Monorepo, Turborepo, Moon Repo — подробнее об этом здесь.
Подробнее о Nixpacks можно прочитать здесь.
Поскольку Nixpacks имеет статический сборщик, Skitflow предоставляет поле Publish Directory, где вы можете указать директорию, которую хотите опубликовать после завершения процесса сборки, например:
Приложения Astro после сборки обычно создают директорию dist, поэтому вы можете указать директорию dist как директорию публикации, и тогда Skitflow скопирует все файлы из директории dist в корень вашего приложения и использует оптимизированный Dockerfile NGINX для запуска вашего приложения.
Railpack (НОВИНКА)
Railpack — это новый оптимизированный тип сборки, являющийся преемником Nixpacks.
Railpack предоставляет множество переменных сборки, которые можно определить во вкладке Environment Variables.
| Имя | Описание |
|---|---|
BUILD_CMD | Установить команду для этапа сборки. Перезаписывает все команды, предоставленные провайдерами |
START_CMD | Установить команду для запуска контейнера |
PACKAGES | Установить дополнительные пакеты Mise. Формат: pkg@version. Если версия не указана, используется последняя |
BUILD_APT_PACKAGES | Установить дополнительные Apt-пакеты во время сборки |
DEPLOY_APT_PACKAGES | Установить дополнительные Apt-пакеты в финальный образ |
Подробнее о Railpack можно прочитать здесь.
Railpack поддерживает Nodejs, Python, Go, PHP, Go, StaticFile, Shell Scripts.
Dockerfile
Если ваш проект содержит Dockerfile, вы можете указать путь к нему. Skitflow использует этот Dockerfile для сборки вашего приложения напрямую, предоставляя вам полный контроль над средой сборки и зависимостями.
Skitflow предоставляет 3 поля для настройки:
Dockerfile Path (Required): Путь к Dockerfile для сборки приложения. Например, если ваш Dockerfile находится в корне приложения, достаточно указатьDockerfile.Docker Context Path: Место расположения Dockerfile. Например, если ваш Dockerfile в корне приложения, укажите.(точку) — это указывает Docker, какой контекст использовать для сборки. Подробнее: Dockerfile Context.Docker Build Stage: Этап сборки для использования. Например, если вы хотите использовать этапbuilder, укажитеbuilder. Подробнее о этапах сборки здесь.
Buildpack
Skitflow поддерживает два типа Buildpack:
- Heroku: Адаптированы из популярной облачной платформы Heroku, эти buildpack-и предназначены для совместимости и простоты миграции. Вы можете опционально указать версию Heroku — по умолчанию Skitflow использует версию 24.
- Paketo: Предоставляет облачные buildpack-и, использующие современные стандарты и практики для сборки приложений.
Выбирая подходящий тип сборки, вы можете адаптировать процесс развертывания под требования вашего приложения и операционные предпочтения.
Static
Тип сборки Static используется для обслуживания статических приложений — он использует оптимизированный Dockerfile NGINX для запуска вашего приложения.
Skitflow копирует всё из директории Root и монтирует в директорию /usr/share/nginx/html, используя оптимизированный Dockerfile NGINX для запуска вашего приложения.
Убедитесь, что при создании домена используется порт 80.
Рекомендации
- Для прототипирования и разработки мы рекомендуем использовать тип сборки
Nixpacks. - Для продакшена мы рекомендуем следовать Руководству по продакшену для надежного развертывания.
- Для статических приложений мы рекомендуем использовать тип сборки
Static.