Sequelize 中如何使用 Docker 容器化部署

阅读时长 6 分钟读完

在前端开发中,Sequelize 是一款备受欢迎的 ORM 框架,它能够方便地将数据库操作封装成可重用的代码片段,大大提高开发效率。而随着 Docker 的普及,越来越多的前端团队开始将应用部署到 Docker 容器中,以实现快速部署和灵活可控的运行环境。因此,在本篇文章中,我们将介绍如何利用 Docker 将 Sequelize 应用容器化部署。

一、安装 Docker

在安装 Docker 之前,需要先确认本地操作系统是否满足以下要求:

  • Windows 10 64-bit: Pro, Enterprise, or Education (Build 15063 or later)
  • macOS must be version 10.14 or newer.
  • Linux Kernel 3.10 or later

在确认满足要求后,可以前往 Docker 官网(https://www.docker.com/products/docker-desktop)下载安装包,安装完成后,在命令行中输入以下命令验证是否成功安装 Docker:

二、创建 Sequelize 应用

在本文中,我们将以 Node.js 作为实例应用的开发语言,通过 SequelizeORM 与 PostgreSQL 数据库进行交互。因此,在开始之前需要做如下准备工作:

  • 安装 Node.js
  • 安装 PostgreSQL

首先,我们创建一个新的文件夹,用于存放 Sequelize 应用的代码:

然后,使用 npm 初始化应用:

安装 Sequelize 和 pg 模块:

在应用的根目录下,创建一个名为 app.js 的文件,在其中配置 Sequelize 和数据库连接:

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

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

------------------------
    -------- -- -
        ----------------------- --- ---- ----------- ----------------
    --
    ---------- -- -
        --------------------- -- ------- -- --- ----------- -----
    ---
展开代码

在这段代码中,我们使用 pg 模块连接到 PostgreSQL 数据库,并通过 sequelize.authenticate() 方法验证连接是否成功。其中,需要将 hostdialect 分别设置为数据库的地址和类型,logging 参数用于控制是否输出调试日志。

三、编写 Dockerfile

在 Docker 容器中运行 Sequelize 应用时,我们需要指定应用的运行环境,并将应用的代码复制到容器中。这可以通过 Dockerfile 来实现。在应用的根目录下,创建一个名为 Dockerfile 的文件,并在其中编写如下指令:

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

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

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

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

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

- ----
--- ------- --------
展开代码

在这段 Dockerfile 中,我们首先从官方的 Node.js 镜像中拉取最新版本的镜像,并设置运行环境为 production。然后,创建一个名为 /app 的工作目录,并将应用所需的依赖安装到容器中,最后通过 COPY 指令将应用的代码复制到容器中,并设置引导容器时运行的命令为 npm start,也就是启动应用。

四、构建和运行容器

在编写了 Dockerfile 后,我们就可以使用 docker build 命令构建 Docker 镜像了。在应用的根目录下,执行如下命令:

其中,-t 参数用于为构建的镜像指定名称,. 表示使用当前目录下的 Dockerfile。构建镜像需要一段时间,构建成功后,我们就可以使用 docker run 命令启动容器:

其中,-p 参数用于指定容器内部端口向外部暴露的端口,这里将应用的端口 3000 映射到本地的端口 3000。启动容器后,我们可以在浏览器中访问 http://localhost:3000,观察应用是否能够正常运行。

五、使用 Docker Compose

在实际项目中,通常需要同时部署多个服务,这时候使用 docker run 命令进行管理就显得不太方便了。而 Docker Compose 则是一个用于定义和运行多容器 Docker 应用程序的工具,它使用 YAML 文件来配置应用程序的服务,并可以一键启动所有服务。

在启动 Sequelize 应用的同时,我们还需要使用一个 PostgreSQL 数据库服务。因此,在应用的根目录下,创建一个名为 docker-compose.yml 的文件,编写如下内容:

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

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

  ----
    ------ -
    ------
      - -----------
    -----------
      - --
展开代码

在这段 YAML 中,我们定义了两个服务 dbapp。其中,db 服务使用官方的 PostgreSQL 镜像,并设置了数据库的密码和用户名。app 服务则使用当前目录下的 Dockerfile 构建镜像,并将应用的端口 3000 映射到主机的端口 3000。同时,depends_on 参数用于表示 app 服务依赖于 db 服务,这样在启动 app 服务时会先启动 db 服务。

最后,在应用的根目录下执行如下命令启动所有服务:

这时候,我们可以在浏览器中访问 http://localhost:3000,观察应用是否能够正常运行。

六、总结

本文介绍了如何使用 Docker 容器化部署 Sequelize 应用。通过使用 Docker 构建镜像并运行容器,我们可以方便地将应用部署到各种环境中,并且与其他应用服务进行无缝集成。同时,在复杂的应用场景中,使用 Docker Compose 还可以方便地进行多服务管理。

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

纠错
反馈

纠错反馈