全部产品
Search
文档中心

CloudOps Orchestration Service:Konfigurasikan aplikasi dalam bahasa pemrograman tertentu

更新时间:Jun 28, 2025

Secara default, fitur manajemen aplikasi menggunakan Heroku Cloud Native Buildpacks (CNBs) dengan versi heroku/builder:24 untuk membangun aplikasi. Topik ini menjelaskan cara menggunakan Heroku CNBs untuk mengonfigurasi aplikasi dalam berbagai bahasa pemrograman, termasuk Java, Python, Go, dan Node.js.

Catatan tentang konfigurasi gambar kontainer dan kontainer

  • Konfigurasikan variabel lingkungan saat Anda membangun gambar kontainer

    Tambahkan file project.toml untuk menentukan variabel lingkungan saat Anda membangun gambar kontainer. Sebagai contoh, tentukan MAVEN_OPTS.

    Catatan

    Untuk informasi lebih lanjut tentang project.toml, lihat bagian Pengenalan project.toml dari topik ini.

  • Konfigurasikan variabel lingkungan untuk meneruskan parameter waktu proses kontainer

    Parameter waktu proses kontainer diteruskan ke aplikasi dalam variabel lingkungan. Pastikan kode Anda dapat membaca parameter dari variabel lingkungan. Saat menyebarkan kontainer, Anda dapat menentukan variabel lingkungan untuk kontainer tersebut. Manajemen aplikasi menyimpan variabel lingkungan dalam file env dan meneruskannya ke proses kontainer melalui opsi --env-file.

Konfigurasi aplikasi

Repositori kode memungkinkan Anda langsung menyebarkan aplikasi hanya dalam bahasa pemrograman berikut. Bagian ini menjelaskan cara mengonfigurasi aplikasi dalam berbagai bahasa pemrograman.

Java

Persyaratan untuk aplikasi

Persyaratan berikut berlaku untuk aplikasi Java:

  • Direktori root repositori kode harus berisi file pom.xml.

  • Anda dapat menggunakan Maven atau Gradle untuk membangun kode aplikasi.

  • Versi JDK aplikasi harus didukung.

Catatan konfigurasi

  • Versi OpenJDK

    Versi utama OpenJDK 8, 11, 17, 21, dan 22 didukung. CNBs menginstal versi minor terbaru dari versi utama OpenJDK yang ditentukan.

    Catatan

    Jika Anda tidak menentukan versi OpenJDK, CNBs secara default menginstal versi dukungan jangka panjang (LTS) terbaru, seperti versi minor terbaru dari OpenJDK 8, 11, 17, atau 21.

    Anda dapat menambahkan file properti Java system.properties file properti Java ke direktori root aplikasi untuk menentukan versi OpenJDK. Contoh kode berikut menunjukkan cara menentukan OpenJDK 21:

    java.runtime.version=21
  • Opsi Maven

    Anda dapat menggunakan variabel lingkungan MAVEN_OPTS untuk menerapkan pengaturan Maven. Tambahkan file project.toml untuk menentukan variabel lingkungan ini.

    Secara default, CNBs hanya mendukung Maven 3.9. Jika aplikasi Anda bergantung pada versi Maven lainnya, gunakan Maven Wrapper (mvnw). CNBs menggunakan mvnw di direktori root proyek untuk membangun aplikasi.

    Jalankan perintah berikut untuk menggunakan Maven Wrapper:

    mvn wrapper:wrapper # Hasilkan direktori .mvn, mvnw, dan file mvnw.cmd.
    git add .mvn mvnw mvnw.cmd
    git commit -m "dukungan maven wrapper"
    git push origin # Kirim cabang ke repositori kode.
  • Procfile

    File Procfile mendeklarasikan tipe proses dan perintah yang digunakan untuk memulai aplikasi. Untuk informasi lebih lanjut, lihat bagian Pengenalan Procfiles dari topik ini. Untuk aplikasi Spring Boot, file Procfile mendefinisikan cara platform memulai aplikasi Spring Boot. Contoh kode berikut menunjukkan file Procfile tipikal untuk aplikasi Spring Boot:

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

Proyek contoh

Untuk informasi lebih lanjut, lihat buildpacks-jvm.

Python

Persyaratan untuk aplikasi

Untuk aplikasi Python, direktori root kode sumber harus disimpan dalam file requirements.txt atau poetry.lock.

Catatan konfigurasi

  • Versi Python

    Secara default, CNBs menginstal versi Python terbaru, yaitu 3.13. Jika Anda ingin menggunakan versi Python lainnya, tambahkan file .python-version ke direktori root aplikasi dan tentukan versi Python yang ingin Anda gunakan. Contoh kode:

    $ cat .python-version
    3.13
  • Procfile

    File Procfile adalah file teks di direktori root aplikasi. Untuk aplikasi Python, Procfile mendeklarasikan tipe proses dan perintah yang digunakan untuk memulai aplikasi. Contoh kode berikut menunjukkan file Procfile untuk aplikasi Python:

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

    Procfile bukan file yang wajib untuk aplikasi sederhana. Namun, kami sangat menyarankan Anda menambahkan Procfile ke aplikasi Python. Untuk informasi lebih lanjut, lihat bagian Pengenalan Procfiles dari topik ini.

Proyek contoh

Untuk informasi lebih lanjut, lihat buildpacks-python.

Go

Persyaratan untuk aplikasi

Persyaratan berikut berlaku untuk aplikasi Go:

  • Direktori root repositori kode harus berisi file go.mod. Nama module di file go.mod harus berisi setidaknya satu garis miring maju (/).

  • Aplikasi Go mendukung Go 1.16 dan versi lebih baru untuk kompilasi. Aplikasi Go juga mendukung modul Go untuk menginstal dependensi.

    Catatan

    CNBs hanya mendukung manajemen dependensi Go, seperti modul Go. Pengelola dependensi pihak ketiga seperti dep, godep, govendor, dan glide tidak didukung.

Catatan konfigurasi

  • Versi Go

    CNBs membaca versi Go dari baris go di file go.mod.

    Sebagai contoh, CNB memilih rilis terbaru dari Go 1.17. Contoh kode:

    go 1.17
  • Manajemen dependensi

    • Jika direktori root repositori kode berisi file vendor/modules.txt, CNBs akan mencoba menggunakan modul Go di direktori vendor, alih-alih mengunduhnya.

    • Jika direktori root repositori kode tidak berisi file vendor/modules.txt, CNBs mengunduh modul Go sebelum kompilasi.

  • Instalasi paket

    CNBs membangun semua paket main yang terdeteksi oleh proyek.

Proyek contoh

Untuk informasi lebih lanjut, lihat buildpacks-go.

Node.js

Persyaratan untuk aplikasi

Persyaratan berikut berlaku untuk aplikasi Node.js:

  • Selama proses pembuatan, file package.json yang valid harus disiapkan untuk CNBs.

  • Untuk menginstal dependensi, Anda harus menyiapkan file kunci npm, yarn, atau pnpm lock yang valid.

Catatan konfigurasi

Versi Node.js

Tentukan bidang engines.node di file package.json untuk menentukan versi Node.js. Jika Anda tidak menentukan versi Node.js, versi LTS terbaru akan digunakan.

Tentukan versi Node.js di file package.json. Sebagai contoh, tentukan versi terbaru di baris ke-20. Contoh kode:

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

Bidang ini mendukung sintaks yang sama untuk mengontrol versi semantik seperti file package.json. Kami sangat menyarankan Anda menentukan versi Node.js untuk mencegah perubahan yang tidak terduga.

Proyek contoh

Untuk informasi lebih lanjut, lihat buildpacks-nodejs.

PHP

Persyaratan aplikasi

Jika bahasa pemrograman adalah PHP, aplikasi harus memenuhi persyaratan berikut:

  • Mendukung PHP 8.2, PHP 8.3, dan PHP 8.4.

  • Direktori root repositori aplikasi harus berisi file composer.json dan composer.lock.

Konfigurasi

PHP

Tentukan versi runtime PHP di composer.json. Contoh kode berikut menentukan PHP 8.2.0 dan versi lebih baru.

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

Contoh

Untuk informasi lebih lanjut, lihat buildpacks-php dan php-support.

Pengenalan project.toml dan Procfile

  • Klik untuk melihat pengenalan dan konfigurasi project.toml

    • Pengenalan project.toml

      File project.toml, juga dikenal sebagai deskriptor proyek, adalah file teks biasa yang harus disimpan di direktori root proyek. File ini dapat digunakan untuk mengonfigurasi repositori kode secara detail. Sebagai contoh, Anda dapat menggunakan file project.toml untuk menentukan buildpacks yang ingin digunakan, file yang ingin disertakan atau dikecualikan, serta cara variabel lingkungan dikonfigurasi saat membangun repositori kode. Untuk informasi lebih lanjut, lihat project.toml.

    • Konfigurasi project.toml

      File project.toml terutama berisi konfigurasi berikut. Untuk informasi lebih lanjut tentang konfigurasi lainnya dalam file project.toml, lihat Gunakan project.toml.

      • Konfigurasikan variabel lingkungan saat membangun gambar

        Di direktori root proyek, buat atau perbarui deskriptor file project.toml. Contoh variabel lingkungan:

        [_]
        schema-version = "0.2" # Diperlukan. Versi skema 0.1 tidak mendukung env build.
        
        [[io.buildpacks.build.env]]
            name = "MAVEN_OPTS"
            value = "-Xms128m -Xmx512m"
        [[io.buildpacks.build.env]]
            name = "Nama Variabel Lingkungan 2"
            value = "Nilai Variabel Lingkungan 2"
      • Opsional. Tentukan builder project.toml

        Manajemen aplikasi menentukan builder default. Anda juga dapat menentukan builder. Contoh kode:

        [io.buildpacks]
        builder = "cnbs/sample-builder:noble"
  • Klik untuk melihat pengenalan dan format Procfile

    • Pengenalan Procfile

      File Procfile adalah file teks biasa tanpa ekstensi nama file di direktori root aplikasi. File ini harus disimpan hanya di direktori root. Procfile dapat digunakan untuk menggantikan proses startup default aplikasi dalam bahasa pemrograman apa pun. Untuk informasi lebih lanjut, lihat Procfile.

    • Format Procfile

      Procfile mendeklarasikan tipe prosesnya pada baris individu, masing-masing dengan format berikut:

      TIPE_PROSES: PERINTAH

      Ganti bidang dan nilai berikut:

      • Ganti TIPE_PROSES dengan tipe proses, seperti web, worker, dan custom.

      • Ganti PERINTAH dengan perintah yang digunakan untuk memulai jenis proses tersebut, seperti gunicorn -b :$PORT main:app.