App Engine 提示“您的 ruby33 运行时版本已结束支持”,但事实并非如此

问题描述 投票:0回答:1

如谷歌文档中所写这里这里

我使用应用程序引擎中可用的最新 Ruby 运行时。

运行时 环境 运行时ID 支持结束 已弃用 退役
红宝石3.3 Ubuntu 22.04 红宝石33 2027-03-31 2028-03-31
红宝石3.2 Ubuntu 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 google-cloud-platform google-app-engine google-cloud-build app-engine-flexible
1个回答
0
投票

App Engine 处理 yaml 文件的方式似乎在 2024 年 7 月 4 日至 2024 年 8 月 8 日之间略有变化。

现在

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

#...
© www.soinside.com 2019 - 2024. All rights reserved.