ציון גרסאות Ruby
הפרויקט buildpacks תומך בגרסה הנוכחית ובגרסת Active LTS של Ruby. יש גם גרסאות זמינות ישנות יותר של Ruby, אבל יכול להיות שהן לא מתוחזקות באופן פעיל בפרויקט.
שימוש ב-Gemfile.lock
אם האפליקציה שלכם משתמשת ב-bundler, אתם צריכים לשמור את הקובץ Gemfile.lock ברמה הבסיסית (root) של המאגר שלכם. Buildpacks של Ruby ישתמשו באופן אוטומטי בגרסה הנעולה ב-Gemfile.lock. לדוגמה, אם זה מה שמופיע בקובץ Gemfile.lock:
RUBY VERSION
ruby 3.0.3p0
ה-buildpack ישתמש באופן אוטומטי ב-Ruby 3.0.3, עם רמת התיקון האחרונה.
שימוש ב-GOOGLE_RUNTIME_VERSION
אם אתם לא משתמשים ב-bundler, אתם יכולים לציין גרסת Ruby באמצעות משתנה הסביבה:
pack build --builder=gcr.io/buildpacks/builder \
sample-ruby \
--env GOOGLE_RUNTIME_VERSION=3.0.3
אתם גם יכולים להשתמש במתאר של פרויקט project.toml כדי לקודד את משתנה הסביבה לצד קובצי הפרויקט. במאמר פיתוח אפליקציות באמצעות משתני סביבה מפורטות ההוראות.
אם אתם משתמשים ב-bundler, אי אפשר להשתמש במשתנה הסביבה GOOGLE_RUNTIME_VERSION כדי לשנות את הגרסה שצוינה ב-Gemfile.lock בקטע RUBY VERSION.
יחסי תלות בהתקנות
שימוש ב-Bundler
- Bundler היא ברירת המחדל למנהל החבילות.
- צריך לשמור את
Gemfile.lockבמאגר שלכם כי אנחנו משתמשים בקובץ ה-lock כדי לבנות את האפליקציה. - כברירת מחדל, מותקנות רק חבילות שמוגדרות ביחסי התלות של סביבת הייצור.
גרסת Bundler
ל-Bundler יש כמה בעיות תאימות ידועות.
אם האפליקציה שלכם משתמשת ב-Bundler, אתם עלולים להיתקל בבעיות תאימות שונות עם Ruby ו-Rubygems. לכן, אנחנו מעדכנים את Gemfile.lock באפליקציה שנוצרת כך שהיא תשתמש באחת משתי הגרסאות הנתמכות.
אפליקציות שמשתמשות ב-Bundler בגרסאות *.1 ו-*.2 ב-BUNDLED WITH מנורמלות להשתמש ב-bundler בגרסאות 1.17.3 ו-2.3.15.
ציון נקודת הכניסה
שימוש ב-Procfile
אתם יכולים לציין נקודת כניסה, כלומר, הפקודה שתרוץ כשהקונטיינר יתחיל לפעול, באמצעות Procfile. לדוגמה, באמצעות השורה הבאה שתופיע ב-Procfile ברמה הבסיסית של האפליקציה:
web: ruby main.rb
ה-buildpack של Ruby ישתמש בפקודה ruby main.rb בתור נקודת הכניסה בקונטיינר שנוצר.
כברירת מחדל הוא ישתמש ביעד web שמופיע ב-Procfile.
תוכלו גם להשתמש בנקודת כניסה אחרת על ידי העברת יעד אחר כארגומנט ל-Procfile.
באמצעות השורה הבאה בקובץ ה-Procfile:
web: ruby main.rb
custom: ruby custom.rb
תוכלו להעביר את היעד כארגומנט כדי לעבוד עם יעד Procfile בהתאמה אישית:
bash
pack build --builder=gcr.io/buildpacks/builder \
sample-ruby \
--entrypoint=custom
שימוש ב-GOOGLE_ENTRYPOINT
אם אתם לא משתמשים ב-Procfile או אם אתם רוצים לשנות את הגדרת ברירת המחדל ב-Procfile, תוכלו לציין נקודת כניסה באמצעות משתנה הסביבה GOOGLE_ENTRYPOINT. לדוגמה:
pack build --builder=gcr.io/buildpacks/builder \
sample-ruby \
--env GOOGLE_ENTRYPOINT="ruby custom.rb"
משתני סביבה
כדי להתאים אישית את הקונטיינר, ה-buildpack של Ruby תומך במשתני הסביבה הבאים
BUNDLE_
לצפייה במסמכי התיעוד של bundler.
דוגמה: BUNDLE_TIMEOUT=60 מגדיר את --timeout=60 לפקודות bundle.