Tous les produits
Search
Centre de documentation

CloudOps Orchestration Service:Configure an application in a specific programming language

Dernière mise à jour :Aug 11, 2026

Par défaut, la fonctionnalité de gestion des applications utilise les Heroku Cloud Native Buildpacks (CNB) version heroku/builder:24 pour générer les applications. Cette rubrique décrit comment configurer des applications en Java, Python, Go, Node.js , y compris les fichiers requis, l'épinglage des versions d'exécution et l'utilisation du Procfile.

Remarques sur la configuration des images et des conteneurs

  • Configurez les variables d'environnement lors de la génération d'une image de conteneur

    Ajoutez un fichier project.toml pour spécifier les variables d'environnement au moment de la génération, telles que MAVEN_OPTS.

    Remarque

    Pour plus d'informations sur le fichier project.toml, consultez la section Présentation du fichier project.toml de cette rubrique.

  • Configurez les variables d'environnement pour transmettre les paramètres d'exécution du conteneur

    Les paramètres d'exécution du conteneur sont transmis aux applications via des variables d'environnement. Assurez-vous que votre code lit les paramètres à partir des variables d'environnement. Lorsque vous déployez un conteneur, spécifiez les variables d'environnement correspondantes. La gestion des applications stocke ces variables dans le fichier env et les transmet au processus du conteneur à l'aide de l'option --env-file.

Configurations des applications

La fonctionnalité de gestion des applications peut déployer directement des dépôts de code dans les langages de programmation suivants. Chaque section ci-dessous décrit les fichiers requis et les options de configuration pour ce langage.

Java

Prérequis pour les applications

Les applications Java doivent répondre aux exigences suivantes :

  • Le répertoire racine du dépôt de code doit contenir un fichier pom.xml.

  • Générez l'application avec Maven ou Gradle.

  • La version du JDK de l'application doit être prise en charge.

Notes de configuration

  • Versions OpenJDK

    Les versions majeures 8, 11, 17, 21 et 22 d'OpenJDK sont prises en charge. Les CNB installent la dernière version mineure de la version majeure spécifiée.

    Remarque

    Spécifiez la version majeure d'OpenJDK pour votre application. Si vous omettez cette étape, les CNB installeront la version par défaut actuelle à support à long terme (LTS), qui évolue au fil du temps et peut entraîner des échecs de génération lors de sa mise à jour.

    Pour épingler une version, ajoutez le system.properties fichier de propriétés Java au répertoire racine de l'application. L'exemple suivant épingle l'application sur OpenJDK 21 :

    java.runtime.version=21
  • Options Maven

    Utilisez la variable d'environnement MAVEN_OPTS pour appliquer les paramètres Maven. Ajoutez un fichier project.toml au répertoire racine pour définir cette variable.

    Les CNB prennent en charge Maven 3.9 par défaut. Si votre application requiert une version différente de Maven, utilisez plutôt le Maven Wrapper (mvnw). Les CNB détectent et utilisent le fichier mvnw présent dans la racine du projet.

    Exécutez la commande suivante pour configurer le Maven Wrapper :

    mvn wrapper:wrapper # Generate the .mvn directory, the mvnw, and the mvnw.cmd file.
    git add .mvn mvnw mvnw.cmd
    git commit -m "support maven wrapper"
    git push origin # Submit the branch to the code repository.
  • Procfile

    Un fichier Procfile déclare le type de processus et la commande de démarrage d'une application. Pour plus d'informations sur la syntaxe du Procfile et les types de processus, consultez la section Présentation des fichiers Procfile de cette rubrique. Pour les applications Spring Boot, un fichier Procfile remplace le processus de démarrage par défaut. L'exemple suivant montre un fichier Procfile typique pour Spring Boot :

    web: java -Dserver.port=$PORT $JAVA_OPTS -jar target/demo-0.0.1-SNAPSHOT.jar

Exemples de projets

Pour plus d'informations, consultez buildpacks-jvm.

Python

Prérequis pour les applications

Le répertoire racine du dépôt de code source doit contenir un fichier requirements.txt ou poetry.lock.

Notes de configuration

  • Versions Python

    Les CNB installent la dernière version de Python (actuellement la 3.13) par défaut. Pour utiliser une version différente, ajoutez un fichier .python-version au répertoire racine et spécifiez la version cible :

    $ cat .python-version
    3.13
  • Procfile

    Un fichier Procfile est un fichier texte brut situé dans le répertoire racine qui déclare le type de processus et la commande de démarrage. L'exemple suivant montre un Procfile pour une application Python utilisant Gunicorn :

    web: gunicorn --config gunicorn.conf.py gettingstarted.wsgi
    Remarque

    Un Procfile n'est pas obligatoire pour les applications simples, mais il est recommandé d'en ajouter un aux applications Python pour rendre la commande de démarrage explicite et éviter de s'appuyer sur la détection automatique. Pour plus d'informations, consultez la section Présentation des fichiers Procfile.

Exemples de projets

Pour plus d'informations, consultez buildpacks-python.

Go

Prérequis pour les applications

Les applications Go doivent répondre aux exigences suivantes :

  • Le répertoire racine du dépôt de code doit contenir un fichier go.mod. Le module name dans le fichier go.mod doit contenir au moins une barre oblique (/).

  • Go 1.16 ou une version ultérieure est requis pour la compilation. Les modules Go doivent être utilisés pour la gestion des dépendances.

    Remarque

    Les CNB ne prennent en charge que les modules Go pour la gestion des dépendances. Les gestionnaires de dépendances tiers tels que dep, godep, govendor et glide ne sont pas pris en charge.

Notes de configuration

  • Versions Go

    Les CNB lisent la version de Go à partir de la directive go dans le fichier go.mod. Un identifiant de version majeure tel que go 1.17 résout vers la dernière version de correctif disponible dans cette série au moment de la génération. Pour épingler une version de correctif spécifique, spécifiez la version complète (par exemple, go 1.17.13).

    L'entrée suivante sélectionne la dernière version Go 1.17.x disponible au moment de la génération :

    go 1.17
  • Gestion des dépendances

    • Si le répertoire racine contient un fichier vendor/modules.txt, les CNB utilisent les modules Go du répertoire vendor au lieu de les télécharger.

    • Si aucun fichier vendor/modules.txt n'est présent, les CNB téléchargent les modules Go avant la compilation.

  • Installation des packages

    Les CNB génèrent tous les packages main détectés dans le projet.

Exemples de projets

Pour plus d'informations, consultez buildpacks-go.

Node.js

Prérequis pour les applications

Les applications Node.js doivent répondre aux exigences suivantes :

  • Un fichier package.json valide doit être présent dans le répertoire racine pour que les CNB détectent l'application.

  • Un fichier de verrouillage npm, yarn ou pnpm valide doit être présent pour installer les dépendances.

Notes de configuration

Versions Node.js

Définissez le champ engines.node dans le fichier package.json pour épingler la version de Node.js. Si aucune version n'est spécifiée, les CNB installent la dernière version LTS, qui évolue au fil du temps et peut entraîner un comportement de génération inattendu.

L'exemple suivant épingle l'application sur la dernière version Node.js 20.x :

{
  "engines": {
    "node": "20.x"
  }
}
Remarque

Le champ engines.node prend en charge la même syntaxe de version sémantique que le fichier package.json. Épinglez la version de Node.js pour éviter les modifications inattendues lorsque la version LTS par défaut est mise à jour.

Exemples de projets

Pour plus d'informations, consultez buildpacks-nodejs.

PHP

Prérequis pour les applications

Les applications PHP doivent répondre aux exigences suivantes :

  • Les versions PHP 8.2, 8.3 et 8.4 sont prises en charge.

  • Le répertoire racine du dépôt d'application doit contenir à la fois les fichiers composer.json et composer.lock.

Notes de configuration

PHP

Spécifiez la version d'exécution PHP dans le fichier composer.json. L'exemple suivant requiert PHP 8.2.0 ou une version ultérieure :

{
  "require": {
    "php": "^8.2.0"
  }
}

Exemples de projets

Pour plus d'informations, consultez buildpacks-php et php-support.

Ruby

Prérequis pour les applications

Le répertoire racine du dépôt de code doit contenir des fichiers Gemfile et Gemfile.lock valides.

Notes de configuration

  • Versions Ruby

    Spécifiez la version de Ruby dans le fichier Gemfile et mettez à jour le fichier Gemfile.lock en conséquence :

    1. Spécifiez la version de Ruby dans le fichier Gemfile :

      ruby "3.3.0"
    2. Mettez à jour le fichier Gemfile.lock :

      $ bundle update --ruby
    3. Vérifiez la version de Ruby dans le fichier Gemfile.lock :

      RUBY VERSION
         ruby 3.3.0p0

      Si aucune version de Ruby n'est trouvée dans le fichier Gemfile.lock, les Buildpacks installent la version Ruby par défaut. Spécifiez une version pour éviter les modifications inattendues lorsque la version par défaut est mise à jour.

  • Versions Bundler

    Spécifiez la version de Bundler dans le fichier Gemfile.lock pour verrouiller Bundler sur une version stable connue. Exemple :

    BUNDLED WITH
       2.5.6

    Si aucune version de Bundler n'est trouvée dans le fichier Gemfile.lock, les Buildpacks installent la version Bundler par défaut. Spécifiez une version pour éviter les modifications inattendues lorsque la version par défaut est mise à jour.

Exemples de projets

  • GitHub :

  • Gitee :

Pour plus d'informations, consultez buildpacks-ruby et application-contract.md.

Présentation des fichiers project.toml et Procfile

  • Cliquez pour afficher la présentation et les configurations du fichier project.toml

    • Présentation du fichier project.toml

      Le fichier project.toml, également appelé descripteur de projet, est un fichier texte brut stocké dans le répertoire racine du projet. Utilisez-le pour configurer un dépôt de code en détail, par exemple pour spécifier les buildpacks à utiliser, les fichiers à inclure ou exclure, et la manière dont les variables d'environnement sont définies pendant la génération. Pour plus d'informations, consultez project.toml.

    • Configurations du fichier project.toml

      Le fichier project.toml prend en charge les configurations clés suivantes. Pour une référence complète, consultez Use project.toml.

      • Configurez les variables d'environnement lors de la génération d'une image

        Créez ou mettez à jour le fichier project.toml dans le répertoire racine du projet. L'exemple suivant définit la variable MAVEN_OPTS et une seconde variable d'environnement :

        [_]
        schema-version = "0.2" # Required. Schema version 0.1 does not support build env.
        
        [[io.buildpacks.build.env]]
            name = "MAVEN_OPTS"
            value = "-Xms128m -Xmx512m"
        [[io.buildpacks.build.env]]
            name = "The name of Environment Variable 2"
            value = "The value of Environment Variable 2"
      • Facultatif. Spécifiez le builder project.toml

        La gestion des applications utilise un builder par défaut. Pour le remplacer, spécifiez un builder dans le fichier project.toml :

        [io.buildpacks]
        builder = "cnbs/sample-builder:noble"
  • Cliquez pour afficher la présentation et le format du fichier Procfile

    • Présentation du fichier Procfile

      Un fichier Procfile est un fichier texte brut sans extension, placé dans le répertoire racine d'une application. Il remplace le processus de démarrage par défaut pour les applications dans n'importe quel langage de programmation. Pour plus d'informations, consultez Procfile.

    • Format du fichier Procfile

      Chaque ligne d'un Procfile déclare un type de processus en utilisant le format suivant :

      PROCESS_TYPE: COMMAND

      Remplacez les espaces réservés comme suit :

      • Remplacez PROCESS_TYPE par le type de processus, tel que web, worker ou custom.

      • Remplacez COMMAND par la commande utilisée pour démarrer ce type de processus, telle que gunicorn -b :$PORT main:app.