Buildpacks
Kinsta biedt Buildpacks, een open-source project dat wordt onderhouden door Heroku, als een van de opties om automatisch een container te bepalen en te maken voor je applicatie op basis van je repository. Buildpacks zijn scripts die worden uitgevoerd wanneer je applicatie wordt gedeployed om dependencies voor je applicatie te installeren en je omgeving te configureren.
Je kunt Buildpacks kiezen wanneer je een applicatie toevoegt of door de optie Build omgeving te wijzigen in de applicatie-instellingen (Instellingen > Basisgegevens > Details bewerken).
Ondersteunde talen
Wij ondersteunen de volgende applicatietalen voor Buildpacks:
Als je een andere taalversie wilt gebruiken voor je applicatie, moet je de versie instellen in de bestanden van je applicatie.
Als je een taal wilt gebruiken die geen ondersteunde Buildpack taal is, kun je eerst controleren of het een ondersteunde taal is met Nixpacks. Als dat niet zo is, moet je een Dockerfile gebruiken. Wanneer je je applicatie toevoegt, kun je de optie Gebruik Nixpacks om containerafbeelding op te zetten of Gebruik Dockerfile om container image op te zetten selecteren.
Buildpacks configureren
Sommige applicaties vereisen geen configuratie, maar sommige vereisen gespecialiseerde commando’s en opties om te draaien, zoals:
Omgevingsvariabelen — Je moet wellicht bepaalde omgevingsvariabelen instellen om je applicatie te kunnen draaien.
Processen — Kinsta kan automatisch je webproces commando detecteren. Je kunt dit desgewenst wijzigen, en je kunt aanvullende processen definiëren.
Processen in een Procfile — Mogelijk wil je je processen definiëren in een Procfile binnen de code van je applicatie.
Buildpacks toevoegen of bewerken
Je kunt buildpacks beheren op de pagina Instellingen van je applicatie. Om extra buildpacks toe te voegen, klik je op Buildpack toevoegen. Om de volgorde van de buildpacks van je applicatie te verwijderen of te wijzigen, klik je op Buildpacks bewerken.
Wanneer je een buildpack toevoegt, wordt deze automatisch toegevoegd aan het einde van de buildpackslijst, dus het kan nodig zijn om de volgorde van je buildpacks aan te passen. Je kunt de buildpacks drag-en-droppen om hun volgorde te veranderen in de Buildpacks bewerken popup.
Buildpack binary directories
Bij buildpacks kunnen de binary directories verschillen van de standaard binary directories voor de taal van de applicatie. De volgende tabel toont de binary directories die voor elke buildpack taal worden gebruikt:
Taal | Directory |
---|---|
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 heeft geen specifiek standaard binay directory 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. Normaal gesproken, wanneer je een Scala bronbestand compileert, worden de gecompileerde .class bestanden in dezelfde directory geplaatst als de broncode (binnen een subdirectory structuur gebaseerd op de package declaraties). Indien nodig kun je de runtime tools van Scala installeren met behulp van een Dockerfile in plaats van een buildpack. |
PHP | /workspace/.heroku/php/bin/ |
Go | Go heeft geen specifiek standaard binary directory zoals sommige andere gecompileerde talen. Als je een Go programma compileert, wordt het resulterende binary uitvoerbare bestand standaard in dezelfde map geplaatst als je broncode.
Indien nodig kun je de runtime tools van Go installeren met behulp van een Dockerfile in plaats van een buildpack. |
De taalversie van een Buildpack instellen
Als je de optie Buildpacks gebruiken om container image op te zetten selecteert, als je geen versie opgeeft in de code van je applicatie, zal de Buildpack de laatste beschikbare versie gebruiken. Als je een andere taalversie wilt gebruiken voor je applicatie, moet je de versie instellen in de bestanden van je applicatie.
De methode om de versie in te stellen verschilt per taal. Hieronder hebben we voorbeelden opgenomen voor de momenteel ondersteunde talen.
Go
Om je Go versie op te geven, neem je het volgende op in het bestand go.mod van je applicatie:
// +heroku goVersion go1.11
go 1.21.1
Java
Om je Java-versie op te geven, neem je het volgende op in het bestand system.properties van je applicatie:
java.runtime.version=11
Node.js
Om je Node.js en npm versies op te geven, neem je het volgende op in het package.json bestand van je applicatie:
"engines": {
"node": "^16.14.0",
"npm": "^8.3.1"
}
React
Als je React gebruikt en je wilt je React versie opgeven, vervang of voeg dan de React versie toe in de dependencies
van je package.json bestand:
"react": "^17.0.2"
Om ook de Node.js en npm versies in je React applicatie in te stellen, neem je het volgende op in het package.json bestand van je applicatie:
"engines": {
"node": "^16.14.0",
"npm": "^8.3.1"
}
PHP
Om je PHP versie op te geven, neem je het volgende op in het composer.json bestand van je applicatie:
{
"require": {
"php": "~8.1.0"
}
}
Python
Om je Python versie op te geven, neem je het volgende op in het runtime.txt bestand van je applicatie:
python-3.10.13
Ook kun je moduleversies opgeven in het bestand requirements.txt:
Django==4.1
virtualenv==20.18.0
Ruby
Om je Ruby versie op te geven, neem je het volgende op in je Gemfile:
ruby "3.0.6"
Scala
Om je Scala versie op te geven, neem je het volgende op in het build.sbt bestand van je applicatie:
scalaVersion := "3.2.2"