【问题标题】:Emulator for Google Cloud Run won't start on M1 MacGoogle Cloud Run 模拟器无法在 M1 Mac 上启动
【发布时间】:2022-01-27 12:20:27
【问题描述】:

我正在尝试运行命令 gcloud beta code dev 来启动 Cloud Run 模拟器,但它不会以 skaffold 错误启动。

我已尝试在本地 (M1 Mac) 和 Cloud Shell 中运行它。

以下信息全部来自 Cloud Shell 尝试,因为 (1) 这对每个人都可以重现,并且 (2) 从 Cloud Shell 运行模拟器最初对我有用,而本地从来没有。

我将虚拟机重置为干净状态,只是为了确保,但它仍然出错。

Cloud Shell gloud --version 信息

Google Cloud SDK 365.0.1
alpha 2021.11.19
app-engine-go 1.9.71
app-engine-java 1.9.92
app-engine-python 1.9.97
app-engine-python-extras 1.9.96
beta 2021.11.19
bigtable
bq 2.0.71
cbt 0.10.1
cloud-build-local 0.5.2
cloud-datastore-emulator 2.1.0
core 2021.11.19
datalab 20190610
gsutil 5.5
kind 0.7.0
kpt 1.0.0-beta.7
local-extract 1.3.1
minikube 1.23.2
pubsub-emulator 0.6.0
skaffold 1.34.0

gcloud beta code dev --verbosity=debug 日志结束。整个日志非常长。这部分似乎最相关,但如果有用,我可以发布整个内容。

Flag --enable-rpc has been deprecated, flags --rpc-port or --rpc-http-port now imply --enable-rpc=true, so please use only those instead
INFO[0000] Activated kube-context "gcloud-local-dev"     subtask=-1 task=DevLoop
INFO[0000] starting gRPC server on port 33491            subtask=-1 task=DevLoop
INFO[0000] starting gRPC HTTP server on port 20201 (proxying to 33491)  subtask=-1 task=DevLoop
INFO[0000] Skaffold &{Version:v1.34.0 ConfigVersion:skaffold/v2beta25 GitVersion: GitCommit:22cfab75ffb305e7af220910af2f48d0a5c0e6af BuildDate:2021-10-27T00:27:04Z GoVersion:go1.14.14 Compiler:gc Platform:linux/amd64 User:}  subtask=-1 task=DevLoop
INFO[0000] Loaded Skaffold defaults from "/home/username/.skaffold/config"  subtask=-1 task=DevLoop
DEBU[0000] config version out of date: upgrading to latest "skaffold/v2beta25"  subtask=-1 task=DevLoop
DEBU[0000] parsed 1 configs from configuration file /tmp/skaffold_zwl932r1.yaml  subtask=-1 task=DevLoop
DEBU[0000] Running command: [tput colors]                subtask=-1 task=DevLoop
DEBU[0000] Command output: [8
]                          subtask=-1 task=DevLoop
invalid skaffold config: source: /tmp/skaffold_zwl932r1.yaml, in unnamed config at index 0: invalid image "google cloud run": invalid reference format

如果重要的话,这里是我正在运行的目录的内容gcloud beta code dev

Dockerfile
index.js
package.json
/Assets 

并且此文件夹 (1) 已成功从源部署到 Google Cloud Run,并且 (2) 昨天与本地模拟器一起工作。

让我印象深刻的是“无效图像:谷歌云运行”。 “谷歌云运行”是我所在文件夹的名称,但它不应该是图像名称...

我很乐意为您提供帮助 - 请告诉我您还需要什么其他信息。

【问题讨论】:

  • 请运行gcloud --version 并将输出包含在您的问题中。尝试在gcloud beta code dev 中添加--verbosity=debug 以产生详细的输出。
  • 您能否按照以下步骤操作stackoverflow.com/a/69831616/8753991 如果这解决了您的问题,请告诉我。
  • @JMGelilio 链接的答案没有解决它,但我已经更新了问题的详细信息,谢谢!
  • @JMGelilio 呃,所以我认为在 Cloud Shell 中运行修复了它,但原来的错误又抬头了。我已使用 Cloud-Shell 特定信息更新了上述问题。你介意看看吗?

标签: google-cloud-platform google-cloud-run


【解决方案1】:

我找到了一个效果很好的临时解决方案,即使用 https://shell.cloud.google.com/ 预安装了所有依赖项的 glcoud

编辑:Cloud Shell 中的模拟器有时会莫名其妙地不起作用(请参阅上面的编辑问题)。但是,我在 GitHub 代码空间中一直取得成功,打开一个空白/默认代码空间并按照文档中的 Linux 安装说明进行操作 https://cloud.google.com/run/docs/testing/local#cloud-code-emulator 配置代码空间后,当您来时它会保持配置回到它,因此它可以作为 Google Cloud Run 的持久“本地”测试环境。

这允许对 Cloud Run 容器进行“本地”测试,因为您不需要实际部署(您可以在终端中看到日志,并在 localhost 上看到您的容器)——一切都可以正常运行盒子。

当然,讽刺的是,要做本地测试,还需要使用云壳!

【讨论】:

    猜你喜欢
    • 2021-12-26
    • 2015-06-07
    • 2018-02-19
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多