输入使用 Google Cloud Run 运行的 docker 容器

Posted

技术标签:

【中文标题】输入使用 Google Cloud Run 运行的 docker 容器【英文标题】:Enter a docker container running with Google Cloud Run 【发布时间】:2019-10-14 00:33:38 【问题描述】:

是否可以进入由Google Cloud Run 驱动的容器? docker exec -it CONTAINER /bin/bash 的方式?

我遇到了一个错误,我无法重现运行基于相同映像的容器,无论是在本地还是使用 Google Cloud Shell 来运行该容器。 对于是使用 Cloud Shell 连接到 Cloud Run 还是从我的本地环境连接,我并不挑剔。

【问题讨论】:

【参考方案1】:

是的,你可以,稍微修改一下 - 我在这里发布了一个示例 https://github.com/matti/google-cloud-run-shell

您只需将这些二进制文件复制到您的容器并通过 heroku 或类似的东西建立反向 shell 访问。

【讨论】:

一个有趣的小技巧。对于那些考虑这一点的人,如果有多个实例正在运行,这将中断。 安全警告:matti/lolbear 使用任何密码将任何用户名验证为服务器用户名并删除所有检查这不是我想要运行的附加到我的结算帐户的内容。 正确,但由于云运行限制,它也不能也不能在公共接口中收听。将 auth 删除以方便,因此得名 LOLbear。 我不确定你想说什么。仅仅因为可以部署危险代码并不是一件明智的事情。如果您在帖子中警告此代码很危险,那么至少会警告其他人存在风险。 只是想给出一个公平的“没有你描述的那么危险”——就是这样。【参考方案2】:

是否可以进入由 Google Cloud Run 提供支持的容器?

不,您可以访问该服务的唯一端口是 $PORT(当前为 8080)并且只能通过 HTTP/HTTPS 请求。

您将需要调试老式方法:将语句记录到 Google Stackdriver - Cloud Run 已内置,只需为您的语言执行“logging.info(...)”即可。

如果您的问题是容器启动,请检查 Stackdriver 以获取错误消息。

【讨论】:

以上是关于输入使用 Google Cloud Run 运行的 docker 容器的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Google Cloud PubSub 和 Run 处理资源密集型长时间运行的任务?

Google Cloud Tasks 无法向 Cloud Run 进行身份验证

将 env 变量从 Google 的 Secret Manager 加载到在 Google Cloud Run 上运行但未通过 Cloud Build 部署的 Docker 容器中?

监控 Google Cloud Run 内存使用情况

如何检查正在运行的 Google Cloud Run 容器的实例数?

Google Cloud FUSE 与 Cloud Run [Errno 5] 输入/输出错误:'/database' 但已授予存储对象管理员访问权限