使用 Docker 快速搭建 Rails 开发环境

阅读时长 7 分钟读完

在前端开发中,搭建一个稳定可靠的开发环境是十分重要的一步。而使用 Docker 可以快速搭建一个完备的开发环境,而避免了因为不同操作系统、依赖库版本不同等原因所带来的问题。本文将介绍如何使用 Docker 快速搭建 Rails 开发环境,并且指导如何配置和使用该环境。

环境搭建

安装 Docker

Docker 是一个开源的容器化平台,提供了一种容器化解决方案,可以在容器内部运行应用程序,避免了使用虚拟机的繁琐和消耗的资源。在开始安装 Docker 之前,需要确保你的电脑已经安装了 Docker 和 Docker Compose,否则需要先进行安装。

创建一个 Rails 项目

在使用 Docker 搭建 Rails 开发环境之前,首先需要创建一个 Rails 项目。在 Terminal 中输入下面的命令来创建一个最简单的 Rails 项目:

创建 Docker 配置文件

在运行 Rails 项目之前,需要通过 Docker 配置文件创建一个新容器。在项目根目录中,创建一个名为 "Dockerfile" 的文件,添加以下内容:

-- -------------------- ---- -------
---- -----------

- -- ----- ----
--- --------- -----------
--- -------- -----------

- ------------
--- ----- -- ----
------- ----

- - -------------------- --------------
---- ------- ------------
---- ------------ -----------------
--- ------ -------

- ---------- --- ---------
--- ----- -- ---------
--- ----- -- -------------
--- ----- -- ----------------
--- ----- -- ------- ---------

- ------ ---- ------ ---- --
------ ----

- -- ----- ---
--- --------- --------- ----- ----------

该文件指定了使用最新版本的 Ruby,以及在容器中创建一个工作目录。然后,将项目所依赖的 Gems 复制到正确位置,并运行 bundle install 安装依赖项。为了在容器中运行 Rails,我们需要使用 CMD 命令启动服务器,并在容器内部占用 3000 端口。这意味着我们需要在 Docker 容器内,将容器的 3000 端口映射到主机的 3000 端口。

在项目根目录中,新增名为 "docker-compose.yml" 的文件,并添加以下内容:

-- -------------------- ---- -------
-------- ---

---------
  ---
    ------ --------
    ------
      - -----------

  ----
    ------ -
    -------- ----- ------ -- -------
    --------
      - --------
    ------
      - -----------
    -----------
      - --

该配置文件包含两个服务,第一个服务是 PostgreSQL 数据库,我们使用 Docker Hub 上的官方镜像。第二个服务使用 Dockerfile 的配置文件来构建 Rails 应用程序的环境。我们通过指定依赖于第一个服务来使两个服务一起启动。

启动环境

在 Terminal 中输入以下命令来启动环境:

该命令会使用 Docker Compose 加载 docker-compose.yml 文件,并创建一组服务。使用 "-d" 标志,可以让容器运行在后台,避免我们在启动容器时被几乎不间断的日志阻塞。然后我们可以使用如下命令来确认容器是否启动成功:

输出结果应如下:

现在,我们可以访问 localhost:3000,在浏览器中查看运行的 Rails 应用,此时应该可以看到默认的欢迎页面。

环境配置

修改数据库配置

在默认情况下,Rails 会使用 SQLite 作为其默认数据库。但是,我们前面已经配置了一个 PostgreSQL 容器,因此需要在 Rails 中配置相应的数据库。打开 "config/database.yml" 文件,将下面的配置复制到适当的位置,替换所有以“development:"开头的部分。

-- -------------------- ---- -------
-------- --------
  -------- ----------
  --------- -------
  ----- --
  ----- ----
  --------- --------
  --------- --------
  ----- --- ------------------------------ - - - --
  -------- ----

------------
  --- --------
  --------- -----------------

-----
  --- --------
  --------- ----------

现在,在我们修改了数据库的配置,我们需要停止并重新启动 Docker 容器。在 Terminal 中输入以下命令来重新构建容器:

添加环境变量

我们使用 Docker 配置文件设置了环境变量 RAILS_ENV 和 RACK_ENV 的默认值为 "development"。如果你需要将其更改为其他值,或者需要添加其他环境变量,可以在 "docker-compose.yml" 文件中添加 "environment" 属性:

我们可以通过 Rails 应用中的 ENV 来访问这个环境变量:

添加 Gems

在我们的 Rails 应用程序中,可能会使用不同的 Gems。如果我们需要添加新的 Gems,可以在项目根目录下的 Gemfile 文件中做出修改,并重新构建 Docker 容器。

例如,在 Gemfile 文件中添加 Devise Gem,然后重新构建 Docker 容器:

现在,在 Terminal 中输入以下命令来重新构建容器:

总结

现在,我们已经成功地使用 Docker 快速搭建了一个 Rails 开发环境,并且可以在其中添加我们需要的 Gems。使用 Docker 可以让我们避免由于不同操作系统、依赖库版本不同等问题所带来的困难和卡顿。Docker 的快速性和便捷性,可以让我们更加专注于开发自己的应用程序。希望这篇文章对您有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64aa4d3448841e989466fa0e

纠错
反馈