Bij Kinsta kan je gebruik maken van Nixpacks, een open-source project dat wordt onderhouden door Railway, als een van de opties om automatisch de container images van je applicatie te maken op basis van je repository. Nixpacks zijn scripts die worden uitgevoerd wanneer je applicatie wordt ingezet om dependencies voor je applicatie te installeren en je omgeving te configureren.

We raden aan om Nixpacks te gebruiken omdat ze minder bronnen gebruiken en meer dan 20 talen ondersteunen. Je kunt Nixpacks kiezen wanneer je een applicatie toevoegt of door de optie Build omgeving te wijzigen in de applicatie-instellingen (Instellingen > Basisgegevens > Details bewerken).

Ondersteunde talen

Nixpacks ondersteunt de volgende talen:

  • Clojure
  • Cobol
  • Crystal
  • C#/.NET
  • Dart
  • Deno
  • Elixir
  • F#
  • Go
  • Haskell
  • Java
  • Lunatic
  • Node.js
  • PHP
  • Python
  • Rust
  • Swift
  • Scala
  • Zig

Om een andere taalversie te gebruiken, stel je de versie in de bestanden van je applicatie in.

Als je Nixpacks gebruikt, is het meestal niet nodig om verschillende providers te kiezen of toe te voegen voor de build, omdat ze automatisch worden gedetecteerd. Als er extra providers nodig zijn voor de applicatie, dan kun je die definiëren in een Nixpacks configuratiebestand.

Als je een taal wilt gebruiken die geen ondersteunde Nixpacks of buildpacks taal is, moet je een Dockerfile gebruiken. Wanneer je je applicatie toevoegt, kun je de optie Dockerfile gebruiken om container image in te stellen selecteren.

Nixpacks configureren

Sommige applicaties vereisen geen configuratie, maar sommige vereisen gespecialiseerde commando’s en opties om te draaien, zoals:

Omgevingsvariabelen – Het kan zijn dat je bepaalde omgevingsvariabelen moet instellen om je applicatie te kunnen draaien.

Processen – Kinsta kan automatisch het commando voor je webproces detecteren. Je kunt dit indien nodig wijzigen en je kunt extra processen definiëren.

Processen in een Procfile – Je kunt je processen definiëren in een Procfile binnen de code van je applicatie.

Nixpacks binaire directories

Met Nixpacks kunnen de binaire directories verschillen van de standaard binaire directories voor de applicatietaal. De volgende tabel toont de binaire directories die worden gebruikt voor enkele van de meest voorkomende talen:

Taal Directory
Node.js /nix/var/nix/profiles/default/bin/node
Ruby /nix/var/nix/profiles/default/bin/ruby
Python /nix/var/nix/profiles/default/bin/python
Java /nix/var/nix/profiles/default/bin/java
Scala Scala heeft geen specifiek standaard binair pad zoals sommige andere gecompileerde talen. Wanneer je een Scala programma compileert, genereert het bytecode die draait op de Java Virtual Machine (JVM).

De gecompileerde Scala klassen worden meestal opgeslagen in een mappenstructuur die de pakketstructuur van je code weerspiegelt. Dit is vergelijkbaar met hoe Java klassen zijn georganiseerd. Standaard, wanneer je een Scala bronbestand compileert, worden de gecompileerde .class bestanden in dezelfde directory geplaatst als de sourcecode (binnen een subdirectory structuur gebaseerd op de package declaraties).

Indien nodig kun je de runtime tools van Scala installeren met een Dockerfile in plaats van met een Nixpack.

PHP /nix/var/nix/profiles/default/bin/php
Go Go heeft geen specifiek standaard binair pad zoals sommige andere gecompileerde talen. Wanneer je een Go programma compileert, wordt het resulterende binaire uitvoerbare bestand standaard in dezelfde map geplaatst als je sourcecode.

Indien nodig kun je de runtime tools van Go installeren met een Dockerfile in plaats van met een Nixpack.

Verwante documentatie