App Engine сообщает: «Ваша рабочая версия Ruby33 устарела», но это не так

Как написано в документации Google здесь и здесь

Я использую последнюю версию Ruby, доступную в движке приложений.

Время выполнения Среда Идентификатор среды выполнения Конец поддержки Устарело Вывод из эксплуатации Рубин 3.3 Убунту 22.04 рубин33 2027-03-31 2028-03-31 Рубин 3.2 Убунту 22.04 рубин32 2026-03-31 2027-03-31

Мой файл worker.yml начинается так:

runtime: ruby33
env: flex
service: default
entrypoint: bundle exec sidekiq
resources:
  cpu: 2
  memory_gb: 1.6
  disk_size_gb: 10

Мой Gemfile начинается так:

source 'https://rubygems.org'

ruby "3.3.1"

Мой Gemfile.lock заканчивается так:

RUBY VERSION
   ruby 3.3.1p55

BUNDLED WITH
   2.3.26

Мой Dockerfile начинается так:

# Make sure RUBY_VERSION matches the Ruby version in .ruby-version and Gemfile
ARG RUBY_VERSION=3.3.1
FROM registry.docker.com/library/ruby:$RUBY_VERSION-slim as base

Мой cloudbuild.yaml выглядит так

#First I build the image:
  - id: "Build worker"
    name: "gcr.io/cloud-builders/docker"
    script: |
      #!/usr/bin/env bash
      docker build --target worker -t $_IMAGE_URL .

#Then I deploy it:
 - id: "Launch worker"
   name: 'gcr.io/google.com/cloudsdktool/cloud-sdk:alpine'
   script: |
     #!/usr/bin/env bash
     gcloud app deploy worker.yaml --image-url=$_IMAGE_URL --quiet

но при развертывании я получаю эту ошибку:

Шаг 13. «Запуск рабочего процесса»: ОШИБКА: (gcloud.app.deploy) INVALID_ARGUMENT: обнаружены ошибки при проверке среды выполнения. Срок поддержки вашей рабочей версии Ruby33 истек. Пожалуйста, обновите среду выполнения до последней доступной версии.

Я понятия не имею, как это исправить. Вы можете помочь мне?

🤔 А знаете ли вы, что...
Ruby имеет богатую стандартную библиотеку, которая упрощает разработку приложений.


1
73
1

Ответ:

Решено

Похоже, способ обработки файла yaml движком приложения немного изменился в период с 4 июля 2024 г. по 8 августа 2024 г.

Теперь runtime_config.operating_system ДОЛЖНО быть определено, иначе произойдет сбой с неясной ошибкой INVALID_ARGUMENT: Error(s) encountered validating runtime. Your runtime version for ...

Я исправил эту проблему, добавив это в свой worker.yml файл:

runtime: ruby
env: flex
service: default
entrypoint: bundle exec sidekiq
runtime_config:
  operating_system: "ubuntu22" # <-- FIX

#...