Kinsta erbjuder Nixpacks. Det är ett fantastiskt projekt som dessutom har öppen källkod och underhålls av Railway. Nixpacks är ett av alternativen för att exempelvis skapa din applikations container-avbildning automatiskt baserat på ditt kodförråd. Man kan likna det vid skript som körs när din applikation distribueras. De nyttjas därför när det ska installeras beroenden för din applikation och din miljö ska konfigureras.

Vi rekommenderar att du använder Nixpacks. Som ett resultat nyttjas nämligen mindre resurser. Detta projekt har dessutom stöd för över 20 språk. Du bör därför välja Nixpacks när du lägger till en applikation eller genom att ändra alternativet Byggmiljö i applikations-inställningarna (InställningarGrundläggande information > Redigera information).

Språk som stöds

Nixpacks stöder exempelvis följande språk:

  • Clojure
  • Cobol
  • Kristall
  • C#/.NET
  • Dart
  • Deno
  • Elixir
  • F#
  • Go
  • Haskell
  • Java
  • Lunatic
  • Node
  • PHP
  • Python
  • Ruby
  • Rost
  • Static file
  • Swift
  • Scala
  • Zig

Ifall du vill använda en annan språkversion anger du exempelvis versionen i applikationens filer.

När du använder Nixpacks behöver du vanligtvis inte välja eller lägga till olika leverantörer för byggnationen eftersom de upptäcks automatiskt. Om ytterligare leverantörer behövs för applikationen kan du dessutom definiera dem i en konfigurationsfil för Nixpacks.

Ifall du vill använda ett språk som inte stöds av Nixpacks eller buildpacks måste du använda en Dockerfil. När du lägger till din applikation kan du därför välja alternativet Använd Dockerfil för att konfigurera container-avbildning.

Konfigurera Nixpacks

Vissa applikationer kräver ingen konfiguration. Många kräver dock specialiserade kommandon och alternativ för att köras, exempelvis:

Miljövariabler – Du kan behöva ställa in vissa miljövariabler för att köra din applikation.

Processer – Kinsta kan upptäcka ditt webbprocess-kommando automatiskt. Du kan ändra detta om det behövs, och dessutom definiera ytterligare processer.

Processer i en Procfile – Du kanske vill definiera dina processer i en Procfile inom din applikationskod.

Nixpacks binära kataloger

Med Nixpacks kan de binära katalogerna skilja sig från de binära standardkatalogerna för applikations-språket. I följande tabell visas de binära kataloger som används för några av de vanligaste språken:

Språk Katalog
Node.js /nix/var/nix/profiler/default/bin/node
Ruby /nix/var/nix/profiler/default/bin/ruby
Python /nix/var/nix/profiler/default/bin/python
Java /nix/var/nix/profiler/default/bin/java
Scala Scala har ingen specifik standardmässig binär sökväg som vissa andra kompilerade språk. När du kompilerar en Scala-applikation genereras därför bytecode som körs på Java Virtual Machine (JVM).

De kompilerade Scala-klasserna lagras vanligtvis i en katalogstruktur som speglar paketstrukturen i din kod. Detta liknar organiseringen av Java-klasser. Som ett resultat placeras de kompilerade .class-filerna som standard i samma katalog som källkoden när du kompilerar en Scala-fil (inom en underkatalog-struktur som är baserad på paket-deklarationerna).

Vid behov kan du dessutom installera Scalas körtids-verktyg med hjälp av en Dockerfil istället för att använda ett Nixpack.

PHP /nix/var/nix/profiler/default/bin/php
Go Go har inte en specifik standardmässig binär sökväg som vissa andra kompilerade språk. När du kompilerar en Go-applikation placeras den resulterande binära körbara filen därför vanligtvis i samma katalog som din källkod.

Om det behövs kan du dessutom installera Go’s körtids-verktyg med en Docker-fil istället för med en Nixpack.

Relaterad dokumentation