RubyMine 2025.2 Help

教程:将 Docker Compose 作为远程解释器

Docker 是一个用于构建、共享和运行容器化应用程序的工具。 RubyMine 提供 与 Docker 的集成 ,并允许您在项目中执行所有必要的操作——从构建镜像到在运行的容器内执行命令。 此外,RubyMine 使您能够将运行中的 Docker 容器用作远程解释器。 这意味着您可以直接从 IDE 中在隔离环境中 运行调试测试您的应用程序。

在本教程中,我们将展示如何使用远程 Docker Compose 解释器调试 示例 Rails 应用程序。 此应用程序由一个 Web 前端和一个数据库后端组成。 我们将配置该应用程序以使用两个独立的服务运行,分配 web 服务一个远程解释器,并尝试调试功能。

先决条件

在本教程中,我们将使用安装了 RubyMine 的 Mac 和 macOS。 此外,应满足以下先决条件以完成所有步骤:

  • 验证是否已安装并运行 Docker。

  • 确保 Docker 插件 已启用

使用 Compose 构建并运行应用程序

在本章中,我们将在两个独立的服务中运行我们的应用程序: web 用于前端, 数据库 用于数据库。 为此,我们需要在 database.yml 文件中重新配置数据库设置。 然后,我们可以运行 docker-compose up。 执行以下步骤:

  1. 转到 config/database.yml 文件并注释 Ctrl+/ 以下代码:

    development: <<: *default adapter: sqlite3 database: db/development.sqlite3 ... test: <<: *default adapter: sqlite3 database: db/test.sqlite3
  2. 取消注释 Ctrl+/ 配置使用 Postgres 数据库的 开发 环境的部分:

    development: <<: *default adapter: postgresql encoding: unicode host: db username: postgres password: database: sample_rails_app_db ... test: <<: *default adapter: postgresql encoding: unicode host: db username: postgres password: database: sample_rails_app_db_test
  3. 打开 docker-compose.yml 文件。 请注意,以下命令用于 web 服务以保持其运行:

    web: # command: tail -f /dev/null

    我们需要 web 服务运行,因为 RubyMine 使用 docker-compose exec 命令来分析 Ruby 环境并 将 Docker Compose 添加为远程解释器。 如果 web 服务未运行,RubyMine 会使用 docker-compose run 自动运行它。 如有必要,您可以 更改此行为并使用其他方式分析 Ruby 环境。

  4. 单击 docker-compose up 并等待 Docker Compose 拉取/构建镜像并启动容器。

    服务工具窗口:Compose

    或者,您可以在 RubyMine 终端中运行 docker-compose up 命令。

将 Compose 配置为远程解释器

将 Docker Compose 配置为远程解释器包括两个部分:

配置远程解释器

  1. 打开 设置 对话框 Ctrl+Alt+S ,转到 语言与框架 | Ruby 解释器 页面。

  2. 点击 "添加"按钮 并选择 远程解释器或版本管理器

    新的远程解释器
  3. 在弹出的对话框中,选择 Docker Compose 并指定以下选项:

    配置远程 Ruby 解释器:Docker Compose
    • 服务器 :此选项指定用于运行容器的 Docker 服务器。

    • 配置文件 :保留 docker-compose.yml 文件。

    • 服务 :选择 web服务。

    • Ruby 或版本管理器路径(R) :保留默认 ruby 值以自动检测 Ruby 解释器的路径。 您还可以手动指定解释器的路径或 版本管理器可执行文件。

  4. Ruby 解释器 页面中选择添加的解释器并单击 确定

    Ruby SDK 和 Gems:Docker Compose
  5. 等待 RubyMine 完成索引过程并创建辅助 Docker 镜像和容器。

    Docker 工具窗口:Helpers

(可选)配置 Ruby Docker 集成

为了在 Docker 内使用 Ruby 解释器,IDE 通过在容器内运行特定命令(例如 which rubygem envrbconfig )来分析 Ruby 环境。 您可以选择是否在目标容器(docker-compose exec )中执行这些命令,创建新环境(docker-compose run ),或使用专用服务容器来完成此目的。

  1. 打开 设置 对话框 Ctrl+Alt+S 并转到 构建、执行、部署 | Docker | Ruby 设置 页面。

  2. 指定 RubyMine 如何通过在容器内运行特定命令来分析 Ruby 环境:

    • docker-compose exec 如果项目已启动,否则 docker-compose run

    • docker-compose exec ,如果需要,使用 docker-compose up 运行项目

    • docker exec 在解释器容器中,如果需要,创建解释器容器

    • docker-compose run

配置 gem 同步

RubyMine 会定期启动 gem 同步以收集有关安装在 Docker Compose 解释器中的 gems 的信息并确定可用功能。 例如,RubyMine 会检查是否安装了 rubocop gem,然后再运行 Rupocop 检查。

  1. 打开 设置 对话框 Ctrl+Alt+S 并转到 构建、执行、部署 | Docker | Ruby 设置 页面。

  2. 选择以下选项之一,将有关 Ruby 解释器和已安装 gems 的信息复制到 RubyMine 的本地缓存中:

    • 如果项目已启动,请使用正在运行的容器;否则,请使用新容器 :选择此选项以在运行中的容器内运行 gem 同步。 如果没有运行中的容器,RubyMine 将创建并启动一个新容器,然后在该容器内执行一次 gem 同步。

    • 始终使用新容器 :选择此选项以在每次 RubyMine 执行 gem 同步时创建并启动一个新容器。

创建数据库并运行迁移

在调试我们的 Rails 应用程序之前,我们需要创建数据库并运行迁移。

  1. Ctrl 两次并输入 db:create。 在下拉菜单中选择 rake db:create 并按下 Enter。 保持被调用的 执行 'db:create' 对话框中的默认设置,然后点击 确定

  2. 最后,为了迁移数据库,按 Ctrl 两次,输入 db:migrate ,在下拉菜单中选择 rake db:migrate 并按 Enter。 在弹出的对话框中单击 确定

运行应用程序

在调试之前,让我们运行我们的应用程序以查看其工作情况:

  1. 在工具栏上选择 sample_rails_app 配置并单击 运行 Shift+F10

    运行选定的配置
  2. 打开浏览器,输入 0.0.0.0:3000 地址并按 Enter 以查看我们的工作应用程序。

  3. 要停止应用程序,请单击工具栏上的 停止按钮 Ctrl+F2

Compose 运行/调试配置设置

在运行调试会话之前,让我们检查与 Docker Compose 相关的启动设置:

  1. Ctrl+Shift+A 并开始输入 编辑配置。 选择 编辑配置 并按 Enter

    查找操作
  2. 在弹出的 运行/调试配置 对话框中,选择 开发 配置,位于 Rails 节点下。

    运行/调试配置对话框

    docker-compose 组中,您可以看到以下用于运行/调试 Rails 应用程序的选项:

    • docker-compose exec - RubyMine 在已运行的容器中运行命令。

    • docker-compose up - RubyMine 启动一个服务,用作远程解释器,并带有附加设置(例如,暴露调试器所需的附加端口)。

    • docker-compose run - RubyMine 在新容器中运行命令。

    保留默认 docker-compose up 并单击 确定

调试应用程序

  1. 打开 users_controller.rb 文件,并在 创建 方法中设置断点,位于创建新用户的行旁边。

    设置断点
  2. 选择 sample_rails_app运行/调试配置并单击 Debug Shift+F9

    调试选定的配置
  3. RubyMine 将建议安装调试 gems。 点击

    安装调试 gems
  4. 打开浏览器,并指定应用程序地址 0.0.0.0:3000

  5. 请点击 立即注册! 按钮。 在 注册 页面上,输入所需的用户参数并单击 创建我的帐户

    注册页面
  6. 调试器 暂停会话在断点处,并使您能够 检查应用程序状态。

    调试应用程序

    例如,您可以检查在 注册 页面上指定的用户参数。

最后修改日期: 2025年 9月 26日