【问题标题】:Run `rails c` on GCloud instace with appengine gem使用 appengine gem 在 GCloud 实例上运行“rails c”
【发布时间】:2019-06-03 15:55:06
【问题描述】:

我有一个部署到 GCP 的 Rails 6.0.0.rc1 应用程序(安装了 appengine gem)。有没有办法在运行应用程序的实例上登录远程 Rails 控制台?我试过这个:

bundle exec rake appengine:exec -- bundle exec rails c

给出以下输出:

...
---------- EXECUTE COMMAND ----------
bundle exec rails c
Loading production environment (Rails 6.0.0.rc1)
Switch to inspect mode.
...

显然它执行了命令,但之后立即关闭了连接。

有没有简单的方法可以做到这一点?

作为参考:在 Heroku 上,这只是:

heroku run rails c --app my-application

【问题讨论】:

    标签: ruby-on-rails ruby google-cloud-platform ruby-on-rails-6


    【解决方案1】:

    涉及几个步骤:

    https://gist.github.com/kyptin/e5da270a54abafac2fbfcd9b52cafb61

    如果您在 Google App Engine 的灵活环境中运行 Rails 应用程序,则需要进行一些设置才能访问连接到已部署环境的 Rails 控制台。我想记录这些步骤以供我自己参考,也可以作为对其他人的帮助。

    打开 Google App Engine -> Google Cloud Platform (GCP) 控制台的实例部分。

    为正在运行的实例选择“SSH”下拉菜单。 (哪个实例?我的两个实例都在同一个集群中,并且都运行 Rails,所以对我来说没关系。YMMV。)您可以选择如何通过 ssh 连接。

    选择“在浏览器窗口中打开”以打开基于 Web 的 SSH 会话,这很方便,但可能会很尴尬。

    选择“查看 gcloud 命令”以查看和复制可以从终端使用的 gcloud 命令,这样您就可以使用自己喜欢的终端应用程序,但可能需要安装 gcloud 命令和使用 GCP 验证 gcloud 命令的额外步骤.

    当您处于您选择的 SSH 会话中时,运行 sudo docker ps 以查看当前正在运行的 docker 容器。

    标识您的应用的容器。这是我的输出的样子(为了便于阅读而缩写)。我的应用的容器是第一个。

    jeff@aef-default-425eaf...hvj:~$ sudo docker ps 容器 ID 图像命令名称 38e......552 us.gcr.io/my-project/appengine/default... "/bin/sh -c 'exec bun" gaeapp 8c0......0ab gcr.io/google_appengine/cloud-sql-proxy“/cloud_sql_proxy -di”focused_lalande 855......f92 gcr.io/google_appengine/api-proxy "/proxy" api 7ce......0ce gcr.io/google_appengine/nginx-proxy "/var/lib/nginx/bin/s" nginx_proxy 25f......bb8 gcr.io/google_appengine/fluentd-logger "/opt/google-fluentd/" fluentd_logger 记下您的应用程序的容器名称(在我的例子中是 gaeapp),然后运行 ​​container_exec bash。

    将 ruby​​ 和节点添加到您的环境中:export PATH=$PATH:/rbenv/versions/2.3.4/bin:/rbenv/bin:/nodejs/bin

    cd /app 以获取您的应用程序代码。

    将 Rails 应用程序期望的任何必要的环境变量添加到您的环境中。例如:export DATABASE_URL='...'

    如果不知道自己的应用需要什么,可以通过 cat app.yaml 查看应用的完整环境。

    bin/rails console production 在 Rails 生产环境中启动 Rails 控制台。

    【讨论】:

    • 感谢您的链接:+1:
    猜你喜欢
    • 2019-09-06
    • 2019-09-29
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    相关资源
    最近更新 更多