Membangun aplikasi Ruby

Menentukan Versi Ruby

Project buildpack menyediakan dukungan untuk rilis saat ini dan rilis LTS Aktif Ruby. Rilis Ruby yang lebih lama tersedia tetapi mungkin tidak dikelola secara aktif oleh project.

Menggunakan Gemfile.lock

Jika aplikasi Anda menggunakan bundler, Anda harus memiliki Gemfile.lock di root repo. Buildpack Ruby akan otomatis menggunakan versi yang dikunci di Gemfile.lock Anda. Misalnya, jika Gemfile.lock memiliki hal berikut:

RUBY VERSION
  ruby 3.0.3p0

Buildpack akan secara otomatis menggunakan Ruby 3.0.3, dengan level patch terbaru.

Menggunakan GOOGLE_RUNTIME_VERSION

Jika tidak menggunakan bundler, Anda dapat menentukan versi ruby menggunakan variabel lingkungan sebagai berikut:

pack build --builder=gcr.io/buildpacks/builder \
   sample-ruby \
   --env GOOGLE_RUNTIME_VERSION=3.0.3

Anda juga dapat menggunakan deskriptor project project.toml untuk mengenkode variabel lingkungan bersama file project Anda. Lihat petunjuk cara membangun aplikasi dengan variabel lingkungan.

Jika Anda menggunakan bundler,GOOGLE_RUNTIME_VERSION tidak dapat digunakan untuk mengganti versi yang ditentukan di Gemfile.lock pada RUBY VERSION.

Menginstal Dependensi

Menggunakan Bundler

  • Bundler adalah pengelola paket default
  • Commit Gemfile.lock ke repo Anda karena kami menggunakan file kunci untuk membangun aplikasi
  • Secara default, hanya dependensi produksi yang diinstal

Versi Bundler

Bundler memiliki masalah kompatibilitas umum. Jika aplikasi Anda menggunakan bundler, karena berbagai masalah kompatibilitas dengan Ruby dan Rubygem, kami akan mengupdate Gemfile.lock dalam aplikasi yang di-build untuk menggunakan salah satu dari dua versi yang didukung. Semua aplikasi yang menggunakan bundler 1.* dan 2.* di BUNDLED WITH dinormalkan untuk menggunakan bundler 1.17.3 dan 2.3.15.

Menentukan Titik Entri

Menggunakan Procfile

Anda dapat menentukan titik entri, yaitu perintah yang berjalan saat container dimulai, menggunakan Procfile. Misalnya, dengan hal berikut di Procfile pada root aplikasi Anda:

web: ruby main.rb

Buildpack Ruby akan menggunakan perintah ruby main.rb sebagai titik entri container yang dibuat. Secara default, target web dari Procfile digunakan.

Untuk menggunakan titik entri yang berbeda, Anda dapat menentukan target yang berbeda dari Procfile sebagai argumen.

Dengan Procfile yang berisi berikut ini: web: ruby main.rb custom: ruby custom.rb

Anda dapat menggunakan target Procfile kustom dengan meneruskannya sebagai argumen: bash pack build --builder=gcr.io/buildpacks/builder \ sample-ruby \ --entrypoint=custom

Menggunakan GOOGLE_ENTRYPOINT

Jika tidak menggunakan Procfile atau ingin mengganti Procfile, Anda dapat menentukan titik entri menggunakan variabel lingkungan GOOGLE_ENTRYPOINT. Berikut contohnya:

pack build --builder=gcr.io/buildpacks/builder \
   sample-ruby \
   --env GOOGLE_ENTRYPOINT="ruby custom.rb"

Variabel Lingkungan

Buildpack Ruby mendukung variabel lingkungan berikut untuk menyesuaikan container Anda

BUNDLE_

Lihat dokumentasi bundler.

Contoh: BUNDLE_TIMEOUT=60 menetapkan --timeout=60 untuk perintah bundle.