我使用应用程序引擎中可用的最新 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 运行时版本已结束支持。请升级到可用的最新运行时版本..
我不知道如何解决它。你能帮我吗?
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
#...