Buildpacki

Zrób commit kodu. Nodion wykrywa język, instaluje runtime i buduje obraz.

W Applications → New połącz repozytorium Giti wybierz Buildpacks. Nodion używa domyślnego buildera, chyba że wybierzesz inny. W monorepo ustaw Base directory na folder aplikacji.

Użyj Dockerfilezamiast buildpacków, jeśli już go masz albo jeśli repozytorium nie ma struktury obsługiwanego języka.

Czym są

Nodion Buildpacks to Cloud Native Buildpacks. Fazy detect, build i launch są zgodne z tą specyfikacją. Buildpacki językowe, stack Ubuntu i wersje runtime'ów są opracowywane przez Nodion. To nie są buildpacki Paketo, Heroku ani Google.

Aktualny stack to nodion-26: Ubuntu 26.04 LTS. Obraz buildu zawiera kompilatory i pliki nagłówkowe. Obraz uruchomieniowy (run image) zawiera popularne biblioteki klienckie (Postgres, MySQL, ImageMagick, certyfikaty CA i podobne). Proces działa jako użytkownik bez uprawnień roota. Dodatkowe pakiety systemowe dodaj przez Aptfile lub project.toml.

Co robi build

  1. Sprawdza pliki w Base directory i wybiera pierwszą pasującą grupę językową.
  2. Ustala runtime na podstawie przypiętej wersji (lub domyślnej), a potem instaluje tę wersję.
  3. Instaluje zależności na podstawie pliku lockfile lub manifestu.
  4. Uruchamia build właściwy dla języka (assety, mix release, go build i tak dalej).
  5. Ustawia domyślny proces web. Procfile go nadpisuje.

Twoja aplikacja musi nasłuchiwać na PORT. Nodion ustawia tę zmienną. Jeśli nie jest ustawiona, większość domyślnych poleceń używa portu 8080.

Wykrywanie

Grupy są sprawdzane od góry. Wybierana jest pierwsza grupa, dla której znaleziono wszystkie wymagane pliki. W każdej grupie możesz opcjonalnie dodać pakiety Debiana.

Jeśli repozytorium zawiera Nodion używa
package.json i statyczny frontend Node.js, potem strona statyczna
composer.json i package.json PHP plus Node (na przykład Laravel z Vite)
Gemfile i package.json Ruby plus Node (Rails z JS)
composer.json PHP
Gemfile Ruby
requirements.txt, Pipfile lub pyproject.toml Python
go.mod Go
Cargo.toml Rust
mix.exs Elixir
pom.xml lub pliki Gradle Java
*.csproj, *.fsproj lub *.sln .NET
Tylko package.json (aplikacja serwerowa) Node.js
static.toml i brak package.json Strona statyczna
Tylko Procfile Twoje typy procesów, bez instalacji języka

Skan w dashboardzie ostrzega, gdy nie znajdzie żadnego obsługiwanego pliku wskazującego język. Nadal możesz wybrać Buildpacks, przełączyć się na Dockerfile albo ustawić inny Base directory.

Obsługiwane wersje

Nodion utrzymuje linię języka do końca jej wsparcia (end-of-life) i jeszcze przez maksymalnie trzy miesiące. Jeśli wskażesz wersję minor, otrzymasz jej najnowszą opublikowaną wersję poprawkową. Build z wersją starszą niż najstarsza opublikowana linia kończy się błędem end-of-life. Build z wersją nowszą niż wszystkie dotąd zbudowane kończy się błędem „jeszcze niedostępna”.

Wyjątkiem są Go i Rust: aplikację buduje najnowszy opublikowany toolchain. Starsze wartości w go.mod lub rust-version nadal się kompilują.

Poniższe linie są aktualne według stanu na wrzesień 2026. Wersje poprawkowe zmieniają się wraz z nowymi publikacjami. Jeśli zależy Ci na konkretnej wersji minor, przypnij ją w pliku opisanym na stronie danego języka.

Język Domyślnie Opublikowane linie
Node.js 24 22, 24, 25, 26
Python 3.13 3.10-3.14
PHP 8.3 8.2-8.5
Ruby 3.4 3.3, 3.4, 4.0
Go 1.26 Najnowszy toolchain (obecnie 1.25-1.27)
Rust 1.96 Najnowszy toolchain (obecnie 1.95-1.98)
Java 21 11, 17, 21, 25, 26
.NET 10 8, 9, 10
Elixir 1.20 1.15-1.20 (Erlang/OTP 26-29, domyślnie 28)

Procfile

Procfile w Base directory definiuje typy procesów. Domyślnym procesem jest web, jeśli istnieje, a w przeciwnym razie pierwsza linia. Domyślne ustawienia języka obowiązują tylko wtedy, gdy nie ma Procfile.

web: gunicorn myapp.wsgi --bind 0.0.0.0:$PORT
worker: python worker.py

Każdy typ to osobny proces aplikacji. Liczbę replik i polecenie ustawiasz w zakładce Processes.

Dodatkowe pakiety Debiana

Najlepiej użyj project.toml. Aptfile (jeden pakiet lub URL .deb na linię) nadal działa. Jeśli istnieją oba, wygrywa project.toml.

[com.nodion.buildpacks.deb-packages]
install = ["ffmpeg", "pandoc"]

Pakiety są rozpakowywane do obrazu. Skrypty opiekunów pakietów nie są uruchamiane, więc pakiety, które tworzą użytkowników systemowych lub uruchamiają usługi, nie będą działać. Pakiet z bezpośredniego adresu URL https://…/*.deb jest pobierany bez zmian i bez rozwiązywania zależności.

Daj swojemu agentowi chmurę.

Zyskaj do 15 € środków na start przy rejestracji.

Kontynuuj z GitHub

lub przez e-mail

Bądź na bieżąco.

Nowości produktowe, bez spamu. Możesz zrezygnować w każdej chwili.