Buildpacks
Kinsta bietet Buildpacks, ein Open-Source-Projekt, das von Heroku gepflegt wird, als eine der Optionen an, um automatisch einen Container für deine Anwendung auf der Grundlage deines Repositorys zu bestimmen und zu erstellen. Buildpacks sind Skripte, die beim Deployment deiner Anwendung ausgeführt werden, um Abhängigkeiten für deine Anwendung zu installieren und deine Umgebung zu konfigurieren.
Du kannst Buildpacks auswählen, wenn du eine Anwendung hinzufügst oder indem du die Option Build-Umgebung in den Anwendungseinstellungen änderst (Einstellungen > Grundlegende Details > Details bearbeiten).
Supported Languages
Wir unterstützen die folgenden Anwendungssprachen für Buildpacks:
Wenn du eine andere Sprachversion für deine Anwendung verwenden willst, musst du die Version in den Dateien deiner Anwendung angeben.
Wenn du eine Sprache verwenden möchtest, die nicht zu den unterstützten Buildpack-Sprachen gehört, kannst du zunächst prüfen, ob sie von Nixpacks unterstützt wird. Ist dies nicht der Fall, musst du ein Dockerfile verwenden. Wenn du deine Anwendung hinzufügst, kannst du die Option Nixpacks zum Einrichten des Container-Images verwenden oder Dockerfile zum Einrichten des Container-Images verwenden auswählen.
Buildpacks konfigurieren
Einige Anwendungen müssen nicht konfiguriert werden, aber einige benötigen spezielle Befehle und Optionen, um ausgeführt zu werden, z. B:
Umgebungsvariablen — Möglicherweise musst du bestimmte Umgebungsvariablen setzen, um deine Anwendung auszuführen.
Prozesse — Kinsta kann deinen Webprozessbefehl automatisch erkennen. Du kannst dies bei Bedarf ändern und zusätzliche Prozesse definieren.
Prozesse in einem Procfile — Vielleicht möchtest du deine Prozesse in einem Procfile im Code deiner Anwendung definieren.
Buildpacks hinzufügen oder bearbeiten
Du kannst Buildpacks auf der Seite Einstellungen deiner Anwendung verwalten. Um weitere Buildpacks hinzuzufügen, klicke auf Buildpack hinzufügen. Um Buildpacks aus deiner Anwendung zu entfernen oder deren Reihenfolge zu ändern, klicke auf Buildpacks bearbeiten.
Wenn du ein Buildpack hinzufügst, wird es automatisch an das Ende der Buildpacks-Liste angehängt, so dass du die Reihenfolge deiner Buildpacks ändern musst. Du kannst die Reihenfolge der Buildpacks im Modal/Pop-up Buildpacks bearbeiten per Drag & Drop ändern.
Buildpack-Binärverzeichnisse
Bei Buildpacks können die Binärverzeichnisse von den Standard-Binärverzeichnissen für die Anwendungssprache abweichen. Die folgende Tabelle zeigt die Binärverzeichnisse, die für jede Buildpack-Sprache verwendet werden:
Sprache | Verzeichnis |
---|---|
Node.js | /layers/heroku_nodejs-engine/dist/bin/node |
Ruby | /usr/bin/ruby |
Python | /usr/bin/python |
Java | /layers/heroku_jvm/openjdk/bin/java |
Scala | Scala hat keinen speziellen Standard-Binärpfad wie einige andere kompilierte Sprachen. Wenn du ein Scala-Programm kompilierst, wird Bytecode erzeugt, der auf der Java Virtual Machine (JVM) läuft.
Die kompilierten Scala-Klassen werden normalerweise in einer Verzeichnisstruktur gespeichert, die die Paketstruktur deines Codes widerspiegelt. Das ist ähnlich wie bei der Organisation von Java-Klassen. Wenn du eine Scala-Quelldatei kompilierst, werden die kompilierten .class-Dateien standardmäßig im gleichen Verzeichnis wie der Quellcode abgelegt (in einer Unterverzeichnisstruktur, die auf den Paketdeklarationen basiert). Wenn du möchtest, kannst du die Scala-Laufzeitwerkzeuge auch mit einem Dockerfile statt mit einem Buildpack installieren. |
PHP | /workspace/.heroku/php/bin/ |
Go | Go hat keinen bestimmten Standard-Binärpfad wie einige andere kompilierte Sprachen. Wenn du ein Go-Programm kompilierst, wird die ausführbare Binärdatei in der Regel in dasselbe Verzeichnis wie dein Quellcode gelegt.
Wenn du musst, kannst du die Go-Laufzeitwerkzeuge mit einem Dockerfile anstelle eines Buildpacks installieren.Set a Buildpack’s Language Version |
Die Sprachversion eines Buildpacks festlegen
Wenn du die Option Buildpacks zum Einrichten des Container-Images verwenden auswählst und keine Version im Code deiner Anwendung angibst, verwendet das Buildpack die letzte verfügbare Version. Wenn du eine andere Sprachversion für deine Anwendung verwenden möchtest, musst du die Version in den Dateien deiner Anwendung angeben.
Die Methode zum Einstellen der Version ist je nach Sprache unterschiedlich. Im Folgenden findest du Beispiele für die derzeit unterstützten Sprachen.
Go
Um deine Go-Version anzugeben, füge Folgendes in die go.mod-Datei deiner Anwendung ein:
// +heroku goVersion go1.11
go 1.21.1
Java
Um deine Java-Version anzugeben, füge Folgendes in die system.properties-Datei deiner Anwendung ein:
java.runtime.version=11
Node.js
Um deine Node.js-Version und die npm-Version anzugeben, füge Folgendes in die package.json-Datei deiner Anwendung ein:
"engines": {
" node ": "^16.14.0",
" npm ": "^8.3.1"
}
React
Wenn du React verwendest und deine React-Version angeben möchtest, ersetze oder füge die React-Version in den Abhängigkeiten
deiner package.json-Datei hinzu:
" react ": "^17.0.2"
Um auch die Node.js- und npm-Versionen in deiner React-Anwendung festzulegen, füge das Folgende in die package.json-Datei deiner Anwendung ein:
"engines": {
" node ": "^16.14.0",
" npm ": "^8.3.1"
}
PHP
Um deine PHP-Version anzugeben, füge Folgendes in die composer.json-Datei deiner Anwendung ein:
{
"require": {
"php": "~8.1.0"
}
}
Python
Um deine Python-Version anzugeben, füge Folgendes in die Datei runtime.txt deiner Anwendung ein:
python-3.10.13
Du kannst auch Modulversionen in der Datei requirements.txt angeben:
Django ==4.1
virtualenv==20.18.0
Ruby
Um deine Ruby-Version anzugeben, füge Folgendes in deine Gemfile ein:
ruby "3.0.6"
Scala
Um deine Scala-Version anzugeben, füge Folgendes in die Datei build.sbt deiner Anwendung ein:
scalaVersion := "3.2.2"