【问题标题】:How can I use puma-dev in a local docker environment?如何在本地 docker 环境中使用 puma-dev?
【发布时间】:2020-03-28 20:41:48
【问题描述】:

我正在使用需要 puma-dev 工具才能在本地开发的旧版 Rails 应用程序。该应用程序需要能够将client-a.myapp.test 等域解析为 localhost:3000。

问题是这个应用程序太旧了,由于各种过时的组件,我和我的团队需要对其进行 docker 化,以便有希望在本地站起来。

问题继续,是我不能只将 puma-dev 放入我的 docker 容器中,因为 Linux 对该工具的支持非常缺乏,并且非常不清楚如何将指令转换为 docker 环境。在这条路线上挣扎了很长一段时间后,我决定采取另一种方法。

现在,我已经从 dockerhub 上的 golang 映像创建了一个单独的 docker 映像,仅用于 puma-dev。我决定尝试与我的另一个包含 ruby​​ 应用程序的 docker 容器并行运行它,希望它们可以一起工作(在端口 3000 上服务的 ruby​​ 应用程序,带有 puma-dev 监听),或者与我最终将其列为ruby 应用程序的 docker-compose 依赖项并将它们捆绑在一起。但是,我不确定这样做是否有意义,或者这是否是一种合乎逻辑的方法。

我想我的问题是,我可以这样做吗?或者,更好的是,我怎样才能让 puma-dev 与 Docker 一起工作?

【问题讨论】:

  • 将其创建为单独的图像并将其列为对 Rails 应用程序容器的依赖项应该没问题。除非这不是你要问的?
  • 酷,谢谢。这就是我要问的。基本上我对实现有了一定的了解,我还有一些调试工作要做,但不确定该方法是否适合我,并且想在花费数小时进行故障排除之前进行验证。我对网络和 Docker 知之甚少,所以我不确定 puma-dev 或 docker 是否存在一些潜在的限制,这会使我的方法无效。
  • 我现在正在研究这个,你能找到解决方案吗?对于我们的用例,我们有一个使用 puma-dev 在本地运行的 Rails 应用程序,它运行良好。我正在容器化 Rails 应用程序,但希望尽可能少地更改我们现有的工作流程,所以我试图让主机上的 puma-dev 使用容器的代理端口。
  • @Clinton 我无法让它正常工作。最后我只是修改了我的/etc/hosts 以使我们达到满足我们需求的可用状态。希望我能为您提供更多细节,但老实说,这是不久前的事了,所以大部分细节我都忘记了。

标签: ruby-on-rails ruby docker puma-dev


【解决方案1】:

您可以使用 puma-dev 代理功能https://github.com/puma/puma-dev#proxy-support

在 rails docker 镜像中运行 rails server 并暴露 3000 端口,然后在您的主机中使用以下命令为 localhost:3000 设置代理:

echo '3000' > ~/.puma-dev/myapp

【讨论】:

    猜你喜欢
    • 2021-11-09
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 2019-07-31
    • 1970-01-01
    • 2018-08-08
    相关资源
    最近更新 更多