Kinsta tilbyder Nixpacks, et open source-projekt, der vedligeholdes af Railway, som en af mulighederne for automatisk at oprette din applikations container-image baseret på dit repository. Nixpacks er scripts, der køres, når din applikation implementeres for at installere afhængigheder til din applikation og konfigurere dit miljø.

Vi anbefaler at bruge Nixpacks, fordi de bruger færre ressourcer og understøtter mere end 20 sprog. Du kan vælge Nixpacks, når du tilføjer en applikation, eller ved at ændre indstillingen Build environment i applikationsindstillingerne (Settings > Basic details > Edit details).

Understøttede sprog

Nixpacks understøtter følgende sprog:

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

Hvis du vil bruge en anden sprogversion, skal du angive versionen i din applikations filer.

Når du bruger Nixpacks, er der normalt ikke behov for at vælge eller tilføje forskellige udbydere til buildet, fordi de automatisk registreres. Hvis der er brug for flere udbydere til applikationen, kan du definere dem i en Nixpacks-konfigurationsfil.

Hvis du vil bruge et sprog, der ikke understøttes af Nixpacks eller buildpacks, skal du bruge en Dockerfil. Når du tilføjer din applikation, kan du vælge Use Dockerfile to set up container image.

Konfigurer Nixpacks

Nogle applikationer kræver ingen konfiguration, men andre kræver specialiserede kommandoer og indstillinger for at køre, f.eks:

Miljøvariabler – Det kan være nødvendigt at indstille visse miljøvariabler for at køre din applikation.

Processer – Kinsta kan automatisk registrere din webproceskommando. Du kan ændre dette, hvis det er nødvendigt, og du kan definere yderligere processer.

Processer i en Procfile – Du ønsker måske at definere dine processer i en Procfile i din applikations kode.

Nixpacks binære mapper

Med Nixpacks kan de binære mapper afvige fra de binære standardmapper for programsproget. Følgende tabel viser de binære biblioteker, der bruges til nogle af de mest almindelige sprog:

Sprog Katalog
Node.js /nix/var/nix/profiles/default/bin/node
Ruby /nix/var/nix/profiler/default/bin/ruby
Python /nix/var/nix/profiles/default/bin/python
Java /nix/var/nix/profiles/default/bin/java
Scala Scala har ikke en specifik standard binær sti som nogle andre kompilerede sprog. Når du kompilerer et Scala-program, genererer det bytekode, der kører på Java Virtual Machine (JVM).

De kompilerede Scala-klasser gemmes typisk i en mappestruktur, der afspejler pakkestrukturen i din kode. Det svarer til, hvordan Java-klasser er organiseret. Når du kompilerer en Scala-kildefil, vil de kompilerede .class-filer som standard blive placeret i samme mappe som kildekoden (i en undermappestruktur baseret på pakkedeklarationerne).

Hvis det er nødvendigt, kan du installere Scalas runtime-værktøjer ved hjælp af en Dockerfile i stedet for at bruge en Nixpack.

PHP /nix/var/nix/profiles/default/bin/php
Go Go har ikke en specifik standard binær sti som nogle andre kompilerede sprog. Når du kompilerer et Go-program, placeres den resulterende binære eksekverbare fil som standard i den samme mappe som din kildekode.

Hvis det er nødvendigt, kan du installere Go’s runtime-værktøjer ved hjælp af en Dockerfile i stedet for at bruge en Nixpack.

Relateret dokumentation