在前端开发中,搭建一个稳定可靠的开发环境是十分重要的一步。而使用 Docker 可以快速搭建一个完备的开发环境,而避免了因为不同操作系统、依赖库版本不同等原因所带来的问题。本文将介绍如何使用 Docker 快速搭建 Rails 开发环境,并且指导如何配置和使用该环境。
环境搭建
安装 Docker
Docker 是一个开源的容器化平台,提供了一种容器化解决方案,可以在容器内部运行应用程序,避免了使用虚拟机的繁琐和消耗的资源。在开始安装 Docker 之前,需要确保你的电脑已经安装了 Docker 和 Docker Compose,否则需要先进行安装。
创建一个 Rails 项目
在使用 Docker 搭建 Rails 开发环境之前,首先需要创建一个 Rails 项目。在 Terminal 中输入下面的命令来创建一个最简单的 Rails 项目:
rails new myapp cd myapp
创建 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 up -d
该命令会使用 Docker Compose 加载 docker-compose.yml 文件,并创建一组服务。使用 "-d" 标志,可以让容器运行在后台,避免我们在启动容器时被几乎不间断的日志阻塞。然后我们可以使用如下命令来确认容器是否启动成功:
docker-compose ps
输出结果应如下:
Name Command State Ports -------------------------------------------------------------------------------- myapp_app_1 rails server -b 0.0.0.0 Up 0.0.0.0:3000->3000/tcp myapp_db_1 docker-entrypoint.sh postgres Up 0.0.0.0:5432->5432/tcp
现在,我们可以访问 localhost:3000,在浏览器中查看运行的 Rails 应用,此时应该可以看到默认的欢迎页面。
环境配置
修改数据库配置
在默认情况下,Rails 会使用 SQLite 作为其默认数据库。但是,我们前面已经配置了一个 PostgreSQL 容器,因此需要在 Rails 中配置相应的数据库。打开 "config/database.yml" 文件,将下面的配置复制到适当的位置,替换所有以“development:"开头的部分。
-- -------------------- ---- ------- -------- -------- -------- ---------- --------- ------- ----- -- ----- ---- --------- -------- --------- -------- ----- --- ------------------------------ - - - -- -------- ---- ------------ --- -------- --------- ----------------- ----- --- -------- --------- ----------
现在,在我们修改了数据库的配置,我们需要停止并重新启动 Docker 容器。在 Terminal 中输入以下命令来重新构建容器:
docker-compose down docker-compose up -d
添加环境变量
我们使用 Docker 配置文件设置了环境变量 RAILS_ENV 和 RACK_ENV 的默认值为 "development"。如果你需要将其更改为其他值,或者需要添加其他环境变量,可以在 "docker-compose.yml" 文件中添加 "environment" 属性:
version: "3" services: app: build: . environment: MY_ENV_VAR: "my_value"
我们可以通过 Rails 应用中的 ENV 来访问这个环境变量:
puts ENV["MY_ENV_VAR"]
添加 Gems
在我们的 Rails 应用程序中,可能会使用不同的 Gems。如果我们需要添加新的 Gems,可以在项目根目录下的 Gemfile 文件中做出修改,并重新构建 Docker 容器。
例如,在 Gemfile 文件中添加 Devise Gem,然后重新构建 Docker 容器:
# Gemfile gem 'devise'
现在,在 Terminal 中输入以下命令来重新构建容器:
docker-compose down docker-compose up -d --build
总结
现在,我们已经成功地使用 Docker 快速搭建了一个 Rails 开发环境,并且可以在其中添加我们需要的 Gems。使用 Docker 可以让我们避免由于不同操作系统、依赖库版本不同等问题所带来的困难和卡顿。Docker 的快速性和便捷性,可以让我们更加专注于开发自己的应用程序。希望这篇文章对您有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64aa4d3448841e989466fa0e